Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 Kiril Karaatanasov, July 2006 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 Kiril Karaatanasov, July 2006 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 Kiril Karaatanasov, July 2006 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 Kiril Karaatanasov, July 2006 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 Kiril Karaatanasov, July 2006 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. Kiril Karaatanasov, July 2006 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! Kiril Karaatanasov, July 2006 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 Kiril Karaatanasov, July 2006 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 Kiril Karaatanasov, July 2006 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 Kiril Karaatanasov, July 2006 Trac plus/minus 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 Kiril Karaatanasov, July 2006 Further reading / Questions? • Subversion site http://subversion.tigris.org • TortoiseSVN http://tortoisesvn.tigris.org/ • Trac’s web site http://www.edgewall.com/trac Kiril Karaatanasov, July 2006