Version Control Tools Kıvanç Kantürk
What is Version Control System ? A  version control system (VCS)  is a repository of files, often the files for the source code of computer programs, with monitored access.
How  VCS  Work ? Every  change  made to the source is  tracked , along with  who made the change ,  why  they made it, and  references to problems fixed , by the change.
History of VCS Version control systems originate from tools that were for software development management. The software was not originally designed for general use in a variety of tasks.
History of VCS (cont) The best known of the old-time revision control tools is SCCS (Source Code Control System), which Marc Rochkind wrote at Bell Labs, in the early 1970s.
Why VCS is needed ? To  track the history and evolution of your project . To ease collaborating in a project. To recover from mistakes .   To work simultaneously on, and manage the drift between, multiple versions of your project.
Advantages of VCS Data Integrity Accountability Rapid Development Distribution of Work Development Branching Ease for program development Productivity & Time Efficiency Record Keeping & Backup Files Software Engineering Process Support To return an older version of software when needed
Disadvantages of VCS Unnecessary back-up Only one person can work on a file at a time (on some tools)
Common Properties of Version Control Tools A  database-like storage system U se version numbers while storing projects S imilar functions(merge which is being used widely in projects) C ompare the differences between two codes by highlighting or using an information  window K eep a back-up file for the project S ystem locks the file to prevent “concurrent access” problems. L ogs to current changes during a project Branching
Differences Between Version Control Tools Repository difference(Client/Server or Distributed model) Concurrency model(Locking, Merging, Hybrid) Platforms Supported Cost
The Elements of Version Control Systems Logs Tagging Revisions Branching Locking versus Merging The Repository and Working Directory
Effects of VCS Effects on software development Effects on coding Effects on programming market
Most Commonly Used VCS tools SCCS(Source Code Control System) RCS (Revision Control System) CVS (Concurrent Version System) Subversion ClearCase Bitkeeper
(SCCS)Source Code Control System Store text files. Retrieve specific versions of files.  Control updating access to files. Identify the version of a retrieved file. Record when, why and by whom changes are made to a file.
(SCCS)Source Code Control System
(RCS) Revision Control System Walter Tichy developed a free alternative to SCCS in the early 1980s RCS required developers to work in a single shared workspace, and to lock files to prevent multiple people from modifying them simultaneously.  In single-user scenarios, such as server configuration files or scripts, RCS may still be the best choice between other revision control tools
(CVS) Concurrent Version System Later in the 1980s, Dick Grune used RCS as a building block for a set of shell scripts he initially called CMT, but then renamed to CVS (Concurrent Versions System) Each developer had a copy of every project file, and could modify their copies independently. They had to merge their edits prior to committing changes to the central repository.
(CVS) Concurrent Version System
Subversion In 2001, Jim Blandy and Karl Fogel, two developers who had worked on CVS, started a project to replace it with a tool that would have a better architecture and cleaner code. It adds multi-file atomic commits, better namespace management, and a number of other features that make it a generally better tool than CVS SVN uses branching
Subversion
Subversion
Differences between VCS tools Repository model Concurrency model Cost Platforms supported
Tools and Properties Software   Maintainer   Repository model   Concurrency model   Platforms supported   Cost   AccuRev  ‌ AccuRev, Inc. Client-server Merge or lock Unix-like, Windows, Mac OS X $1495 for each licence/Free 2-user 30 day trial licenses available Aldon  ‌ Aldon Client-server Merge or lock Linux, Windows, OS/400 Unspecified Alienbrain  ‌ Avid Technology, Inc. Client-server Merge or lock Linux, Windows, Mac OS X $495/$895/$1,495 for each licence(programmer/artits/advance)/free for up to two users. AllFusion Harvest Change Manager CA, Inc. Client-server Merge or Lock Unix-like, Windows $1595 for each licence. Bazaar  ‌ Canonical Ltd. Distributed Merge Unix-like, Windows, Mac OS X Free BitKeeper  ‌ BitMover Inc. Distributed Merge Unix-like, Windows, Mac OS X Quoted on an individual basis. ClearCase ‌ IBM Rational Client-server and Distributed Merge or lock Unix-like, Windows, i5/OS, z/OS $4250 per concurrent user plus tax (includes 12 months support) Code Co-op  ‌ Reliable Software Distributed Merge Windows $150 per seat Codeville  ‌ Ross Cohen Distributed Merge Unix-like, Windows, Mac OS X Free CVS  ‌ The CVS Team Client-server Merge Unix-like, Windows, Mac OS X Free
Tools and Properties CVSNT  ‌ March Hare Software and community members. Client-server Merge or Lock Unix-like, Windows, Mac OS X, OS/400 Free or commercial Darcs  ‌ David Roundy Distributed Merge Unix-like, Windows, Mac OS X Free DesignSync  ‌ MatrixOne   ? Merge or Lock Unix-like, Windows Commercial Git Junio C Hamano Distributed Merge POSIX, Windows, Mac OS X Free GNU arch ‌ Andy Tai Distributed Merge Unix-like, Windows, Mac OS X Free LibreSource Synchronizer  ‌ Artenum Client-server Merge Unix-like, Windows, Mac OS X Free Mercurial  ‌ Matt Mackall Distributed Merge Unix-like, Windows, Mac OS X Free Monotone  ‌ Nathaniel Smith, Graydon Hoare Distributed Merge Unix-like, Windows, Mac OS X Free Perforce  ‌ Perforce Software Inc. Client-server Merge or Lock Unix-like ,  Windows ,  Mac OS X Free for up to 2 users, and for OSS development; else $800 per seat, with volume discounts  [21] PlasticSCM  ‌ Codice Software Client-server Merge Unix-like ,  Windows ,  Mac OS X $621 per seat, with volume discounts  [23]
Tools and Properties PureCM  ‌ PureCM.com Ltd Client-server Merge or Lock Unix-like ,  Windows ,  Mac OS X Free for up to 2 users. $1,000 for 5 users  [24] Razor ‌ Visible Systems Client-server Merge or lock Unix ,  Linux , Windows , Mac OS X $800-$1,000 for each concurrent licence/Free unlimited users 21 day trial licenses available SourceAnywhere Hosted Dynamsoft Client-server Merge or Lock A  SaaS  application; Clients:  Windows  and Cross-platform via Java based client Has Free Plan and other Plans  [27] SourceHaven  ‌ Veterisoft, Inc. Client-server   ? Unix-like ,  Windows ,  Mac OS X $295 per seat with volume discounts StarTeam  ‌ Borland Client-server Merge or lock Windows  and Cross-platform via Java based client Contact Borland  [29] Subversion (SVN)  ‌ CollabNet, Inc. Client-server Merge or lock [4] Unix-like ,  Windows ,  Mac OS X Free (Commercial support/services available) Surround SCM  ‌ Seapine Software Client-server Merge or lock Unix-like ,  Windows ,  Mac OS X Commercial SVK  ‌ Best Practical Distributed Merge Unix-like ,  Windows ,  Mac OS X Free Team Foundation Server  ‌ Microsoft Client-server Lock or merge Server:  Windows  Server 2003; Clients: Windows and Web included; Java client (for Eclipse IDE, MacOS, Unix) available Licensed through MSDN subscription or through direct buy  [33] Telelogic Synergy ‌ Telelogic AB Client-server and Distributed Merge or Lock Linux, Windows, Unix-like Contact Telelogic  [34]
Tools and Properties Vault SourceGear LLC Client-server Lock or Merge Unix-like, Linux, Windows $249 per user Visual SourceSafe Microsoft Client-server Lock or merge Windows Bundled with Visual Studio, $549.00 per full version

Version Control

  • 1.
    Version Control ToolsKıvanç Kantürk
  • 2.
    What is VersionControl System ? A version control system (VCS) is a repository of files, often the files for the source code of computer programs, with monitored access.
  • 3.
    How VCS Work ? Every change made to the source is tracked , along with who made the change , why they made it, and references to problems fixed , by the change.
  • 4.
    History of VCSVersion control systems originate from tools that were for software development management. The software was not originally designed for general use in a variety of tasks.
  • 5.
    History of VCS(cont) The best known of the old-time revision control tools is SCCS (Source Code Control System), which Marc Rochkind wrote at Bell Labs, in the early 1970s.
  • 6.
    Why VCS isneeded ? To track the history and evolution of your project . To ease collaborating in a project. To recover from mistakes . To work simultaneously on, and manage the drift between, multiple versions of your project.
  • 7.
    Advantages of VCSData Integrity Accountability Rapid Development Distribution of Work Development Branching Ease for program development Productivity & Time Efficiency Record Keeping & Backup Files Software Engineering Process Support To return an older version of software when needed
  • 8.
    Disadvantages of VCSUnnecessary back-up Only one person can work on a file at a time (on some tools)
  • 9.
    Common Properties ofVersion Control Tools A database-like storage system U se version numbers while storing projects S imilar functions(merge which is being used widely in projects) C ompare the differences between two codes by highlighting or using an information window K eep a back-up file for the project S ystem locks the file to prevent “concurrent access” problems. L ogs to current changes during a project Branching
  • 10.
    Differences Between VersionControl Tools Repository difference(Client/Server or Distributed model) Concurrency model(Locking, Merging, Hybrid) Platforms Supported Cost
  • 11.
    The Elements ofVersion Control Systems Logs Tagging Revisions Branching Locking versus Merging The Repository and Working Directory
  • 12.
    Effects of VCSEffects on software development Effects on coding Effects on programming market
  • 13.
    Most Commonly UsedVCS tools SCCS(Source Code Control System) RCS (Revision Control System) CVS (Concurrent Version System) Subversion ClearCase Bitkeeper
  • 14.
    (SCCS)Source Code ControlSystem Store text files. Retrieve specific versions of files. Control updating access to files. Identify the version of a retrieved file. Record when, why and by whom changes are made to a file.
  • 15.
  • 16.
    (RCS) Revision ControlSystem Walter Tichy developed a free alternative to SCCS in the early 1980s RCS required developers to work in a single shared workspace, and to lock files to prevent multiple people from modifying them simultaneously. In single-user scenarios, such as server configuration files or scripts, RCS may still be the best choice between other revision control tools
  • 17.
    (CVS) Concurrent VersionSystem Later in the 1980s, Dick Grune used RCS as a building block for a set of shell scripts he initially called CMT, but then renamed to CVS (Concurrent Versions System) Each developer had a copy of every project file, and could modify their copies independently. They had to merge their edits prior to committing changes to the central repository.
  • 18.
  • 19.
    Subversion In 2001,Jim Blandy and Karl Fogel, two developers who had worked on CVS, started a project to replace it with a tool that would have a better architecture and cleaner code. It adds multi-file atomic commits, better namespace management, and a number of other features that make it a generally better tool than CVS SVN uses branching
  • 20.
  • 21.
  • 22.
    Differences between VCStools Repository model Concurrency model Cost Platforms supported
  • 23.
    Tools and PropertiesSoftware   Maintainer   Repository model   Concurrency model   Platforms supported   Cost   AccuRev ‌ AccuRev, Inc. Client-server Merge or lock Unix-like, Windows, Mac OS X $1495 for each licence/Free 2-user 30 day trial licenses available Aldon ‌ Aldon Client-server Merge or lock Linux, Windows, OS/400 Unspecified Alienbrain ‌ Avid Technology, Inc. Client-server Merge or lock Linux, Windows, Mac OS X $495/$895/$1,495 for each licence(programmer/artits/advance)/free for up to two users. AllFusion Harvest Change Manager CA, Inc. Client-server Merge or Lock Unix-like, Windows $1595 for each licence. Bazaar ‌ Canonical Ltd. Distributed Merge Unix-like, Windows, Mac OS X Free BitKeeper ‌ BitMover Inc. Distributed Merge Unix-like, Windows, Mac OS X Quoted on an individual basis. ClearCase ‌ IBM Rational Client-server and Distributed Merge or lock Unix-like, Windows, i5/OS, z/OS $4250 per concurrent user plus tax (includes 12 months support) Code Co-op ‌ Reliable Software Distributed Merge Windows $150 per seat Codeville ‌ Ross Cohen Distributed Merge Unix-like, Windows, Mac OS X Free CVS ‌ The CVS Team Client-server Merge Unix-like, Windows, Mac OS X Free
  • 24.
    Tools and PropertiesCVSNT ‌ March Hare Software and community members. Client-server Merge or Lock Unix-like, Windows, Mac OS X, OS/400 Free or commercial Darcs ‌ David Roundy Distributed Merge Unix-like, Windows, Mac OS X Free DesignSync ‌ MatrixOne   ? Merge or Lock Unix-like, Windows Commercial Git Junio C Hamano Distributed Merge POSIX, Windows, Mac OS X Free GNU arch ‌ Andy Tai Distributed Merge Unix-like, Windows, Mac OS X Free LibreSource Synchronizer ‌ Artenum Client-server Merge Unix-like, Windows, Mac OS X Free Mercurial ‌ Matt Mackall Distributed Merge Unix-like, Windows, Mac OS X Free Monotone ‌ Nathaniel Smith, Graydon Hoare Distributed Merge Unix-like, Windows, Mac OS X Free Perforce ‌ Perforce Software Inc. Client-server Merge or Lock Unix-like , Windows , Mac OS X Free for up to 2 users, and for OSS development; else $800 per seat, with volume discounts [21] PlasticSCM ‌ Codice Software Client-server Merge Unix-like , Windows , Mac OS X $621 per seat, with volume discounts [23]
  • 25.
    Tools and PropertiesPureCM ‌ PureCM.com Ltd Client-server Merge or Lock Unix-like , Windows , Mac OS X Free for up to 2 users. $1,000 for 5 users [24] Razor ‌ Visible Systems Client-server Merge or lock Unix , Linux , Windows , Mac OS X $800-$1,000 for each concurrent licence/Free unlimited users 21 day trial licenses available SourceAnywhere Hosted Dynamsoft Client-server Merge or Lock A SaaS application; Clients: Windows and Cross-platform via Java based client Has Free Plan and other Plans [27] SourceHaven ‌ Veterisoft, Inc. Client-server   ? Unix-like , Windows , Mac OS X $295 per seat with volume discounts StarTeam ‌ Borland Client-server Merge or lock Windows and Cross-platform via Java based client Contact Borland [29] Subversion (SVN) ‌ CollabNet, Inc. Client-server Merge or lock [4] Unix-like , Windows , Mac OS X Free (Commercial support/services available) Surround SCM ‌ Seapine Software Client-server Merge or lock Unix-like , Windows , Mac OS X Commercial SVK ‌ Best Practical Distributed Merge Unix-like , Windows , Mac OS X Free Team Foundation Server ‌ Microsoft Client-server Lock or merge Server: Windows Server 2003; Clients: Windows and Web included; Java client (for Eclipse IDE, MacOS, Unix) available Licensed through MSDN subscription or through direct buy [33] Telelogic Synergy ‌ Telelogic AB Client-server and Distributed Merge or Lock Linux, Windows, Unix-like Contact Telelogic [34]
  • 26.
    Tools and PropertiesVault SourceGear LLC Client-server Lock or Merge Unix-like, Linux, Windows $249 per user Visual SourceSafe Microsoft Client-server Lock or merge Windows Bundled with Visual Studio, $549.00 per full version