190 likes | 357 Vues
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.
E N D
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/