 
                                 Subversion voor Projectleiders Rob Brands Aino Andriessen  May 25, 2005 1 Source control systems              MS Visual SourceSafe Subversion (svn) CVS SCCS PVCS ClearCase Bitkeeper Perforce Oracle version control RCS netwerk schijf ...  May 25, 2005 2 CVS & Subversion   CVS wordt traditioneel veel ingezet in de open source community en in Java omgevingen.  The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community.  Subversion wordt in grote communities, als Apache, ingezet.  May 25, 2005 3 Approaches   lock-modify-unlock  vss  copy-modify-merge  svn, cvs  May 25, 2005 4 Hele korte Vergelijking  SVN MS VS Strategy copy-modify-merge lock-modify-unlock Access Internet, others lokaal netwerk Clients Many VS client OS MS, Linux, MacOS, java MS Command line x beperkt Atomic commits x - Pricing gratis niet gratis Move x ? Renaming x ? Directory versioning x ?  May 25, 2005 5 Voordelen   Internet access  vergelijkbaar met cvs  clients  copy-modify-merge  command line  May 25, 2005 6 Aandachtpunten   best practices  myproject/branches/  myproject/tags/  myproject/trunk/  copy-modify-merge  bijv. voor projectfiles  werkwijze tov vss  global revision number  “revision 5 of foo.c”, -> “foo.c as it appears in revision 5.”  migratie  May 25, 2005 7 Clients   Browser  command line  Windows Explorer (Tortoise)  smartSVN  IDE's  Jira plugin  ant / maven  ...  May 25, 2005 8 SVN en Jira   Jira kan worden/wordt gekoppeld aan SVN  Jira retrieves the svn logfiles  Koppeling op basis van het Jira incident nr.  Aparte tab bij een incident  ! Neem dus het Jira incident nr op als commentaar bij een commit.  May 25, 2005 9 Working copy   To get a working copy, you must check out some subtree of the repository.  No concept of project or module  .svn administrative directories  off-line actions  Locking is an option  May 25, 2005 10 Terminology   SourceSafe use the word "checkout" as a command which specifically communicates the intent to edit a file.  For CVS / SVN, the "checkout" command is used to retrieve files from the repository regardless of whether the user intends to edit the files or not.  May 25, 2005 11 Terminology 2               Repository Check-out Update Commit (check-in) Branch Tag (label) Switch Merge Revision Import Lock working copy ...  May 25, 2005 12 Revisions   Each time the repository accepts a commit, this creates a new state of the filesystem tree, called a revision. Each revision is assigned a unique natural number.  a revision is a “snapshot” of the repository at a particular moment in time  global revision number • “revision 5 of foo.c”, -> “foo.c as it appears in revision 5.”  It's important to note that working copies do not always correspond to any single revision in the repository; they may contain files from several different revisions. • commit does not pull so you must perform update  shortcuts: HEAD, BASE, PREV, ...  May 25, 2005 13 Merge   Merging is het fundament van svn  Op text-files  Meestal geen conflicten  Built-in conflict resolution  Dus ook goede ondersteuning voor het mergen van een branch met de main 'line'  Aangeven welke revisies er gemerged moeten worden  May 25, 2005 14 Tagging, Branching en Merging   Tag = label (in vss)  Branch is een aparte kopie  Onderliggend mechanisme van taggen en branchen is hetzelfde  Smart copy  May 25, 2005 15 SVN Architecture   May 25, 2005 16 Demo   Tortoise  Log en revision graph  Merging  May 25, 2005 17 Resources   Wikipedia  http://en.wikipedia.org/wiki/Revision_control  http://en.wikipedia.org/wiki/List_of_revision_control_software  Tutorial  http://software.ericsink.com/scm/source_control.html  Comparison  http://better-scm.berlios.de/comparison/comparison.html  SVN Crashcourse  http://www.developer.com/java/other/article.php/3499816  May 25, 2005 18 Resources   CVS  http://www.nongnu.org/cvs/  Subversion  http://subversion.tigris.org/  http://svnbook.red-bean.com/  http://tortoisesvn.tigris.org/  Visual Sourcesafe  http://msdn.microsoft.com/vstudio/previous/ssafe/  Clearcase  http://www-306.ibm.com/software/awdtools/clearcase/  May 25, 2005 19