Subversion voor Projectleiders
Subversion voor Projectleiders. Rob Brands Aino Andriessen. Source control systems. MS Visual SourceSafe Subversion (svn) CVS SCCS PVCS ClearCase Bitkeeper Perforce Oracle version control RCS netwerk schijf. CVS & Subversion.
Subversion voor Projectleiders
E N D
Presentation Transcript
Subversion voor Projectleiders Rob Brands Aino Andriessen
Source control systems • MS Visual SourceSafe • Subversion (svn) • CVS • SCCS • PVCS • ClearCase • Bitkeeper • Perforce • Oracle version control • RCS • netwerk schijf • ...
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.
Approaches • lock-modify-unlock • vss • copy-modify-merge • svn, cvs
Voordelen • Internet access • vergelijkbaar met cvs • clients • copy-modify-merge • command line
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
Clients • Browser • command line • Windows Explorer (Tortoise) • smartSVN • IDE's • Jira plugin • ant / maven • ...
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.
Working copy • To get a working copy, you must check outsome subtree of the repository. • No concept of project or module • .svn administrative directories • off-line actions • Locking is an option
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.
Terminology 2 • Repository • Check-out • Update • Commit (check-in) • Branch • Tag (label) • Switch • Merge • Revision • Import • Lock • working copy • ...
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, ...
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
Tagging, Branching en Merging • Tag = label (in vss) • Branch is een aparte kopie • Onderliggend mechanisme van taggen en branchen is hetzelfde • Smart copy
Demo • Tortoise • Log en revision graph • Merging
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
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/