140 likes | 390 Views
The new version control system. What is Subversion. Subversion is a newly developed open source version control system Subversion enhances upon the proven CVS Subversion is free Subversion is available on nearly all platforms. Why Subversion.
E N D
What is Subversion • Subversion is a newly developed open source version control system • Subversion enhances upon the proven CVS • Subversion is free • Subversion is available on nearly all platforms
Why Subversion • Versioning of the whole repository not only files • Support for both concurrent access and locking • Support for attributes on all object – files, folders and revisions • Optimized for distributed use
Why Subversion II • Updates are done in atomic transactions • One version of the repository includes updates to multiple objects • Operations like branching and tagging are extremely efficient
What is Revision in Subversion • Revisions contain a set of modifications to a set of files/folders i.e. One revision refers many files • User can see which files are modified in parallel • Revision numbers are global for the repository each commit/check-in increases the version of the repository • Easy reversal of modifications as each commit can be reverted to separately, there is not issue with differentiating commits that occurred approximately at the same time
Concurrent Work • Subversion supports the two currently popular models for dealing with concurrent development • Concurrent edits (similar to CVS) a.k.a. “copy-modify-merge “ • Locking of files (similar to SourceSafe) • Both models can be used on the same repository at the same time giving an additional degree of control
Metadata to all objects • SVN supports properties that can be associated to all objects • Files • Folders • Revisions • A property is combination of name and value • All properties are versioned except those associated with revisions • Properties can be useful to: • Identify resolution to defect in tracking system • Track the status of particular revision i.e. self reviewed, unit tested, inspected by peer etc.
Accessing Subversion • Subversion can be accessed: • Using SVN client over HTTP/HTTPS by extending Apache web server • Using proprietary network protocol • Using shared file system • Latest version of files in Subversion can be accessed using regular web browser!
Subversion clients • TortoiseSVN – easy to use integrated with Windows Explorer client, has a built in diff tool • Subclipse - Integrated in Eclipse client • Several standalone desktop clients • Of course UNIX style command line
Downsides • Problem with web projects and Visual Studio 2003 • A bug in Visual Studio 2003 prevents it from operating when using subversion on web projects • Updates to the product are a bit too frequent • Concurrent editing model may be frustrating to SourceSafe users
Trac • A web based system to complement Subversion with • Wiki • Issue tracker • Friendly web access to revision control • Basic reports • It is possible to cross refer Subverison items with Wiki and Issues
Positive Very nice web UI Integrated with subversion Easy to learn Plug-in system Downsides Admin UI is incomplete forced use of command line Plug-in system is problem in maintenance Trac plus/minus
Further reading / Questions? • Subversion site - http://subversion.tigris.org • TortoiseSVN - http://tortoisesvn.tigris.org/ • Trac’s web site - http://www.edgewall.com/trac