Version Control Tools Kıvanç Kantürk
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
• Use version numbers while storing projects
• Similar functions(merge which is being used widely in projects)
• Compare the differences between two codes by highlighting or using an information window
• Keep a back-up file for the project
• System locks the file to prevent “concurrent access” problems.
• Logs 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 lockUnix-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 MergeUnix-like, Windows, Mac
OS XFree
BitKeeper BitMover Inc. Distributed MergeUnix-like, Windows, Mac
OS XQuoted on an individual basis.
ClearCase IBM RationalClient-server and
DistributedMerge 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 MergeUnix-like, Windows, Mac
OS XFree
CVS The CVS Team Client-server MergeUnix-like, Windows, Mac
OS XFree
Tools and Properties
CVSNT
March Hare Software and community members.
Client-server Merge or LockUnix-like, Windows, Mac
OS X, OS/400Free or commercial
Darcs David Roundy Distributed MergeUnix-like, Windows, Mac
OS XFree
DesignSync MatrixOne ? Merge or Lock Unix-like, Windows Commercial
Git Junio C Hamano Distributed MergePOSIX, Windows, Mac OS
XFree
GNU arch Andy Tai Distributed MergeUnix-like, Windows, Mac
OS XFree
LibreSource Synchronizer
Artenum Client-server MergeUnix-like, Windows, Mac
OS XFree
Mercurial Matt Mackall Distributed MergeUnix-like, Windows, Mac
OS XFree
Monotone Nathaniel Smith, Graydon Hoare
Distributed MergeUnix-like, Windows, Mac
OS XFree
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 MergeUnix-like, Windows,
Mac OS X$621 per seat, with volume discounts [23]
Tools and Properties
PureCM PureCM.com Ltd Client-server Merge or LockUnix-like, Windows,
Mac OS XFree for up to 2 users. $1,000 for 5 users [24]
Razor Visible Systems Client-server Merge or lockUnix, 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 lockWindows 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 lockUnix-like, Windows,
Mac OS XCommercial
SVK Best Practical Distributed MergeUnix-like, Windows, Mac
OS XFree
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 ABClient-server and
DistributedMerge 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