Usefulref Home 

Web Design & Development Guide

Comparison of revision control software

Home | Up


The following tables compare general and technical information for notable revision control and software configuration management (SCM) software. This article is not all-inclusive and may become out of date quickly.

General information

Software Maintainer Development status Repository model Concurrency model License Platforms supported Cost
AccuRev AccuRev, Inc. actively developed Client-server Merge or lock Proprietary Unix-like, Windows, Mac OS X Unspecified/Free 2-user 30 day trial licenses available
Aldon Aldon [16] actively developed Client-server Merge or lock Proprietary Linux, Windows, OS/400 Unspecified
Bazaar Canonical Ltd. actively developed Distributed[1] Merge GPL Unix-like, Windows, Mac OS X Free
ClearCase IBM Rational [17] actively developed Client-server and Distributed Merge or lock[2] Proprietary Unix-like, Windows, i5/OS, z/OS $4250 per concurrent user plus tax (includes 12 months support) [18]
Code Co-op Reliable Software actively developed Distributed Merge Proprietary Windows $150 per seat
Codeville Ross Cohen actively developed Distributed Merge BSD Unix-like, Windows, Mac OS X Free
CVS The CVS Team [19] maintained but new features not added Client-server Merge GPL Unix-like, Windows, Mac OS X Free
CVSNT March Hare Software [20] and community members. maintained and new features under development Client-server Merge GPL or proprietary Unix-like, Windows, Mac OS X  OS/400 Free or commercial
darcs David Roundy actively developed Distributed Merge GPL Unix-like, Windows, Mac OS X Free
Git Junio C Hamano actively developed Distributed Merge GPL POSIX, Windows, Mac OS X Free
GNU arch Andy Tai maintained but new features not added Distributed Merge GPL Unix-like, Windows, Mac OS X Free
LibreSource Synchronizer Artenum [21] maintained and new features under development Client-server Merge QPL Unix-like, Windows, Mac OS X Free
Mercurial Matt Mackall actively developed Distributed Merge GPL Unix-like, Windows, Mac OS X Free
Monotone Nathaniel Smith, Graydon Hoare actively developed Distributed Merge GPL Unix-like, Windows, Mac OS X Free
Perforce Perforce Software Inc. actively supported Client-server Merge or Lock Proprietary Unix-like, Windows, Mac OS X Free for up to 2 users, and for OSS development; else $800 per seat, with volume discounts [22]
PlasticSCM Codice Software[23] actively developed Client-server  ? Proprietary Unix-like, Windows, Mac OS X $621 per seat, with volume discounts [24]
SourceHaven Veterisoft, Inc. [25] actively supported Client-server  ? Proprietary Unix-like, Windows, Mac OS X $295 per seat with volume discounts
StarTeam Borland actively developed Client-server Merge or lock Proprietary Windows and Crossplattform via Java based client Included with BDS2006 Enterprise and up, otherwise Contact Borland
Subversion (SVN) CollabNet, Inc. [26] actively developed Client-server[3] Merge or lock[4] Apache/BSD style Unix-like, Windows, Mac OS X Free (Commercial support/services available)
Surround SCM Seapine Software [27] actively developed Client-server Merge or lock Proprietary Unix-like, Windows, Mac OS X Commercial
SVK Best Practical [28] actively developed Distributed Merge Artistic/GPL Unix-like, Windows, Mac OS X Free
Telelogic SYNERGY Telelogic AB actively supported Client-server Merge or Lock Proprietary Linux, Windows  ?
Vault SourceGear LLC [29] actively supported Client-server Lock or Merge Proprietary Unix-like, Linux, Windows $249 per user
Visual Source Safe Microsoft serious bug fixes only Client-server Lock or merge Proprietary Windows Bundled with Visual Studio
Team Foundation Server Microsoft actively developed Client-server Lock or merge Proprietary 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 [30]
  1. ^ Although Bazaar is a distributed version control system it can also be used in a centralized manner using lock step development and checkouts.
  2. ^ In ClearCase, a trigger may be set to allow for the lock model, and this is done at many sites. However, ClearCase development usually takes place on private branches where each developer is given their own branch, so the lock vs. merge concurrency model doesn't matter as much. Code is merged back to the main branch once the developer is ready to deliver their code to the project.
  3. ^ SVK allows Subversion to have distributed branches.
  4. ^ In Subversion, a file attribute enables the lock model on per-file basis. This file attribute can be set automatically using file name wildcard expressions.

Technical information

Software Programming language History model Revision IDs Repo. size Network protocols
AccuRev Java Changeset Namespace O(revisions) custom
Aldon C++, Java Snapshot Namespace O(revisions) custom
Bazaar Python Snapshot Pseudorandom O(patch) HTTP, SFTP, FTP, ssh, custom, email bundles[5]
ClearCase  ? Snapshot Namespace O(patch) HTTP, custom (CCFS), custom (MVFS filesystem driver)
Code Co-op C++ Changeset User ID-Ordinal O(patch) e-mail (MAPI, SMTP/POP3, Gmail), LAN
CVS C Snapshot Namespace O(patch) pserver[31], ssh
CVSNT C++ Changeset Namespace O(patch) sspi, sserver, gserver, pserver, ssh
darcs Haskell Patch Namespace O(patch) HTTP, ssh, email
Git C, shell scripts Snapshot SHA-1 hashes O(patch) custom, ssh, rsync, HTTP, FTP, email, bundles
GNU arch C, shell scripts Changeset Namespace O(patch) WebDAV, HTTP
Mercurial Python, C Changeset SHA-1 hashes O(patch) HTTP, ssh, email (with plugin)
Monotone C++ Hybrid[7] SHA-1 hashes O(patch) custom (netsync)[8]
Perforce  ? Changeset Namespace O(patch) custom
SourceHaven C, Java Snapshot Namespace O(patch) WebDAV, custom
StarTeam ? Snapshot MD5 hashes O(revisions) custom
Subversion C Snapshot Namespace O(patch) WebDAV, custom (svnserve)[8]
SVK Perl Changeset  ?  ?  ?
Vault C# Snapshot  ? O(patch) HTTP, HTTPS
Visual Source Safe C Snapshot Namespace? O(changes)? None, but can access repository files through a "share"
Team Foundation Server C++ and C# Changeset Namespace O(patch) SOAP over HTTP or HTTPS
LibreSource Synchronizer Java Changeset Timestamp of the repository O(patch) HTTP, File-System
Plastic SCM C# Changeset Namespace O(revisions) custom
  1. ^ Although Bazaar is a distributed version control system it can also be used in a centralized manner using lock step development and checkouts.
  2. ^ In ClearCase, a trigger may be set to allow for the lock model, and this is done at many sites. However, ClearCase development usually takes place on private branches where each developer is given their own branch, so the lock vs. merge concurrency model doesn't matter as much. Code is merged back to the main branch once the developer is ready to deliver their code to the project.
  3. ^ SVK allows Subversion to have distributed branches.
  4. ^ In Subversion, a file attribute enables the lock model on per-file basis. This file attribute can be set automatically using file name wildcard expressions.
  5. ^ A Bazaar bundle is a summary diff, with sufficient extra information to preserve history.
  6. ^ Mercurial 0.5b vs git. overview of performance/scalability.
  7. ^ A Monotone's revisions represent changesets and its manifests represent snapshots, each revision is linked to some manifest. But manifests are legacy constructs, they aren't kept in the database anymore and reconstructed on the fly if needed. The real work now happen in rosters which are hybrid snapshot/changeset structures.
  8. ^ a b ssh tunneling is optional

Features

Software Atomic commit File renames Merge file renames Symbolic links Pre/post-event hooks Signed revisions Merge tracking End of line conversions Tags International Support
AccuRev Yes Yes Yes Yes Yes Yes Yes Yes Yes ?
Aldon Yes Yes ? Yes Yes Yes Yes ? ? ?
Bazaar Yes Yes Yes Yes Yes Partial[9] Yes No Yes[10] ?
ClearCase No Yes Yes Yes Yes Yes Yes Yes Yes ?
Code Co-op Yes Yes Yes No limited support No No No Yes ?
CVS No No No No limited support No No Yes Yes ?
CVSNT Yes Yes ? No Yes No Yes Yes Yes ?
darcs Yes Yes Yes No Yes Yes N/A[11] ? Yes ?
Git Yes Yes (implicit) Yes Yes Yes [32] Yes [33] Yes Yes Yes ?
GNU arch Yes Yes ? Yes Yes [34] Yes ? ? Yes ?
Mercurial Yes Yes Yes Yes[12] Yes Yes Yes Yes Yes ?
Monotone Yes Yes Yes No[13] Yes [35] Yes, mandatory Yes No Yes ?
Perforce Yes Yes[14] Yes Yes Yes Yes Yes [36] Yes Yes No[15]
SourceHaven Yes Yes ? Yes Yes No ? ? ? ?
StarTeam Yes[16] Yes ? Yes No No Yes ? Yes ?
Subversion Yes Yes[17]