Comparison of revision control software
From Wikipedia, the free encyclopedia
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.
Contents |
[edit] General information
Software | Maintainer | Development status | Repository model | Concurrency model | License | Platforms supported | Cost |
---|---|---|---|---|---|---|---|
AccuRev [5] | AccuRev, Inc. | actively developed | Client-server | Merge or lock | Proprietary | Any Java Platform (Unix-like, Windows, Mac OS X) | $1495 for each license, free 5-user 30 day trial licenses available |
Aldon[6] | Aldon[7] | actively developed | Client-server | Merge or lock | Proprietary | Linux, Windows, OS/400 | Unspecified |
Alienbrain[8] | Avid Technology, Inc. | actively developed | Client-server | Merge or lock | Proprietary | Linux, Windows, Mac OS X | $495/$895/$1,495 for each licence (programmer/artists/advance), free 30 seats for 60 days trial & free 2 seats unlimited trial. |
AllFusion Harvest Change Manager[9] | CA, Inc.[10] | actively developed | Client-server | Merge or Lock | Proprietary | Unix-like, Windows | $1595 for each licence. |
AVS[11] | Goudniouz[12] | actively developed | Client-server | Merge or Lock | Proprietary | Any Java Platform (Unix-like, Windows, Mac OS X) | Free community version available, standard at €750 |
Bazaar[13] | Canonical Ltd. | actively developed | Distributed[1] | Merge | GPL | Unix-like, Windows, Mac OS X | Free |
BitKeeper[14] | BitMover Inc. | actively developed | Distributed | Merge | Proprietary | Unix-like, Windows, Mac OS X | Quoted on an individual basis. |
ClearCase[15] | IBM Rational | actively developed | Client-server and Distributed | Merge or lock[2] | Proprietary | Unix-like, Windows, i5/OS, z/OS | $4380 per concurrent user plus tax (includes 12 months support) [16] |
Code Co-op[17] | Reliable Software | actively developed | Distributed | Merge | Proprietary | Windows | $150 per seat |
Codeville[18] | Ross Cohen | actively developed | Distributed | Merge | BSD | Unix-like, Windows, Mac OS X | Free |
CVS[19] | The CVS Team [20] | maintained but new features not added | Client-server | Merge | GPL | Unix-like, Windows, Mac OS X | Free |
CVSNT[21] | March Hare Software[22] and community members. | maintained and new features under development | Client-server | Merge or Lock | GPL or proprietary | Unix-like, Windows, Mac OS X, OS/400 | Free or commercial |
darcs[23] | David Roundy | actively developed | Distributed | Merge | GPL | Unix-like, Windows, Mac OS X | Free |
DesignSync[24] | ENOVIA MatrixOne | actively developed | Client-server | Merge or Lock | Proprietary | Unix, Linux, Windows, HPUX | $3500 for each user |
Git[25] | Junio 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[26] | maintained and new features under development | Client-server | Merge | GPL[3] | Unix-like, Windows, Mac OS X | Free |
Mercurial[27] | Matt Mackall | actively developed | Distributed | Merge | GPL | Unix-like, Windows, Mac OS X | Free |
MKS[28] | John Heathrow and David Artisan | actively developed | Client-server | Lock | Proprietary | Unix-like, Windows | Aggregated usage formula, from $999 to $100,000 USD |
Monotone[29] | Nathaniel Smith, Graydon Hoare | actively developed | Distributed | Merge | GPL | Unix-like, Windows, Mac OS X | Free |
Perforce[30] | 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[31] |
PlasticSCM[32] | Codice Software[33] | actively developed | Client-server | Merge | Proprietary | Unix-like, Windows, Mac OS X | $621 per seat, with volume discounts[34] |
PureCM[35] | PureCM.com Ltd | actively developed | Client-server | Merge or Lock | Proprietary | Unix-like, Windows, Mac OS X | Free for up to 2 users. $1,000 for 5 users [36] |
Razor[37] | Visible Systems | actively developed | Client-server | Merge or lock | Proprietary | Unix, Linux,Windows,Mac OS X | $800–1,000 for each concurrent licence |
SourceAnywhere Hosted[38] | Dynamsoft[39] | actively supported | Client-server | Merge or Lock | Proprietary | A SaaS application; Clients: Windows and Cross-platform via Java based client | Has Free Plan and other Plans [40] |
SourceHaven[41] | Veterisoft, Inc.[42] | actively supported | Client-server | ? | Proprietary | Unix-like, Windows, Mac OS X | $295 per seat with volume discounts |
StarTeam[43] | Borland | actively developed | Client-server | Merge or lock | Proprietary | Windows and Cross-platform via Java based client | $7500 per concurrent, $2500 per fixed user. Contact Borland[44] |
Subversion (SVN)[45] | CollabNet, Inc.[46] | actively developed | Client-server[4] | Merge or lock[5] | Apache/BSD style | Unix-like, Windows, Mac OS X | Free (Commercial support/services available) |
Surround SCM[47] | Seapine Software[48] | actively developed | Client-server | Merge or lock | Proprietary | Unix-like, Windows, Mac OS X | Commercial |
SVK[49] | Best Practical[50] | actively developed | Distributed | Merge | Artistic/GPL | Unix-like, Windows, Mac OS X | Free |
Team Foundation Server[51] | Microsoft | actively developed | Client-server | Lock or merge | Proprietary | Server: Windows Server 2003; Clients: Windows and Web included | Licensed through MSDN subscription or through direct buy[52] |
Telelogic Synergy[53] | Telelogic AB | actively supported | Client-server and Distributed | Merge or Lock | Proprietary | Linux, Windows, Unix-like | Contact Telelogic [54] |
Vault[55] | SourceGear LLC[56] | actively developed | Client-server | Lock or Merge | Proprietary | Unix-like, Linux, Windows | $249 per user |
Visual SourceSafe[57] | Microsoft | serious bug fixes only | Client-server | Lock or merge | Proprietary | Windows | Bundled with Visual Studio, $549 per full version |
Software | Maintainer | Development status | Repository model | Concurrency model | License | Platforms supported | Cost |
Table Explanation
- Software: The name of the application that is described.
- Maintainer: The company or group that is currently taking responsibility for the software's maintenance or development
- Development Status: The current status of the software project
- Repository model: describes the relationship between various copies of the source code repository. In a client-server model, users access a master repository via a client; typically, their local machines hold only a working copy of a project tree. Changes in one working copy must be committed to the master repository before they are propagated to other users. In a distributed model, repositories act as peers, and users typically have a local repository with version history available, in addition to their working copies.
- Concurrency model: describes how changes to the working copy are managed to prevent simultaneous edits from causing nonsensical data in the repository. In a lock model, changes are disallowed until the user requests and receives an exclusive lock on the file from the master repository. In a merge model, users may freely edit files, but are informed of possible conflicts upon checking their changes into the repository, whereupon the version control system may merge changes on both sides, or let the user decide when conflicts arise. Note that distributed version control almost always implies a merge concurrency model.
- Licence: The licence model under which the software is licensed. These can be both free and paid licences
- Platforms Supported: The operating systems that the software application currently supports.
- Cost: The price of the software application
[edit] Technical information
Software | Programming language | History model | Revision IDs | Repo. size | Network protocols |
---|---|---|---|---|---|
AccuRev | C++, Java | Changeset | Namespace | O(revisions) | custom |
Aldon | C++, Java | Snapshot | Namespace | O(revisions) | custom |
Alienbrain | C++, Java, DHTML | Changeset | Namespace | O(revisions) | custom, HTTP, HTTPS |
AllFusion Harvest Change Manager | C, Java | Changeset and Snapshot | Namespace | O(patch) | HTTP, custom (TCP) |
AVS | Java | Changeset | Sequence | O(revisions) | HTTP, HTTPS |
Bazaar | Python | Snapshot | Pseudorandom | O(patch) | HTTP, SFTP, FTP, custom, custom over ssh, email bundles[6], WebDAV (with plugin) |
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[58], ssh |
CVSNT | C++ | Changeset | Namespace | O(patch) | sspi, sserver, gserver, pserver, custom over ssh |
darcs | Haskell | Patch | Namespace | O(patch) | HTTP, custom over ssh, email |
DesignSync | C++, Java | Changeset | Namespace | O(patch) | HTTP, HTTPS |
Git | C, shell scripts | Snapshot | SHA-1 hashes | O(patch) | custom, custom over ssh, rsync, HTTP, email, bundles |
GNU arch | C, shell scripts | Changeset | Namespace | O(patch) | WebDAV, HTTP |
LibreSource Synchronizer | Java | Changeset | Timestamp of the repository | O(patch) | HTTP, File-System |
Mercurial | Python, C | Changeset | Numbers,[7] SHA-1 hashes | O(patch)[8] | HTTP, custom over ssh, email (with plugin) |
Monotone | C++ | Hybrid[9] | SHA-1 hashes | O(patch) | custom (netsync), custom over ssh, file system |
Perforce | c++, c | Changeset | Namespace | O(patch) | custom |
Plastic SCM | C# | Changeset | Namespace | O(revision) | custom |
PureCM | C++, C#, Java | Changeset | Namespace | O(patch) | TCP/IP, SSL |
Razor | C, C++ | Changeset (text), Snapshot(binary) | Sequential numbers | Binary(revision, Text(patch) | TCPIP |
SourceAnywhere Hosted | C++, Java | Changeset | Namespace | O(patch) | TCP/IP |
SourceHaven | C, Java | Snapshot | Namespace | O(patch) | WebDAV, custom |
StarTeam | C, Java | Snapshot | MD5 hashes | O(revision) | custom, TCP/IP |
Subversion | C | Changeset and Snapshot | Namespace | O(patch) | custom over ssh, HTTP and SSL (using WebDAV), custom (svnserve) |
Surround SCM | C++ | Changeset | Namespace | O(patch) | custom |
SVK | Perl | Changeset | ? | ? | ? |
Synergy | Java | Changeset (text), Snapshot(binary) | Namespace | O(patch) | HTTP, custom over ssh, custom |
Team Foundation Server | C++ and C# | Changeset | Namespace | O(patch) | SOAP over HTTP or HTTPS |
Vault | C# | Changeset | ? | O(patch) | HTTP, HTTPS |
Visual SourceSafe | C | Snapshot | Namespace? | O(changes)? | None, but can access repository files through a "share" |
Software | Programming language | History model | Revision IDs | Repo. size | Network protocols |
Table Explanation
- Software: The name of the application that is described.
- Programming Language: The coding language in which the application is being developed
- History model: describes the form in which changes are stored in the repository. For example, when a change is committed, a system could store a copy of the tree before and after the change (snapshot), or it might instead store a copy of the tree before the change and a changeset representing the changes.
- Revision IDs: are used internally to identify specific versions of files in the repository. Systems may use pseudorandom identifiers, content hashes of revisions, or filenames with sequential version numbers (namespace).
- Repo. size: describes how the repository grows as changes are committed. O(patch) means that it grows as the size of the patches between revisions, while O(revisions) means that it grows as the size of each revision checked in.
- Network protocols: lists the protocols used for synchronization of changes.
[edit] Features
Software | Atomic commits | 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 | N/A | ? |
Aldon | Yes | Yes | ? | Yes | Yes | Yes | Yes | ? | ? | ? |
Alienbrain | Yes | Yes | ? | ? | Yes | ? | Yes | ? | Yes | Yes |
AllFusion Harvest Change Manager | Yes | No | No | No | Yes | No | No | Yes | Yes | Yes |
Bazaar | Yes | Yes | Yes | Yes | Yes | Partial[10] | Yes | No | Yes | Yes |
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 | ? | Yes | Yes | No | Yes | Yes | Yes | Yes[11] |
darcs | Yes | Yes | Yes | No | Yes | Yes | N/A[12] | ? | Yes | ? |
DesignSync | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No |
Git | Yes | Yes (implicit) | Yes | Yes | Yes [59] | Yes [60] | Yes | Yes | Yes | ? |
GNU arch | Yes | Yes | ? | Yes | Yes [61] | Yes | ? | ? | Yes | ? |
LibreSource Synchronizer | Yes | Yes | Yes | No | limited support [13] | No | Yes [14] | No | Yes | ? |
Mercurial | Yes | Yes | Yes | Yes[15] | Yes | Yes | Yes | Yes | Yes | ? |
Monotone | Yes | Yes | Yes | No[16] | Yes [62] | Yes, mandatory | Yes | No | Yes | ? |
Perforce | Yes | Yes[17] | Yes | Yes | Yes | Yes | Yes [63] | Yes | Yes | Yes [64] |
Plastic SCM | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? | Yes | ? |
PureCM | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
Razor | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No |
SourceAnywhere Hosted | Yes | Yes | No | ? | Yes | No | No | Yes | Yes | Yes |
SourceHaven | Yes | Yes | ? | Yes | Yes | No | ? | ? | ? | ? |
StarTeam | Yes[18] | Yes | ? | Yes | No | No | Yes | Yes | Yes | Yes |
Subversion | Yes | Yes[19] | No | Yes | Yes | No | No[20]. | Yes | Partial[21] | Yes |
Surround SCM | Yes | Yes | Yes | No | Yes | No | Yes | Yes | Yes | Yes |
SVK | Yes | Yes | Yes | Yes | Yes[22] | Yes[23] | Yes | Yes | Yes | Yes |
Synergy | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Team Foundation Server | Yes | Yes | Yes | ? | Yes | ? | Yes | ? | Yes | Yes |
Vault | Yes | Yes | Yes | No | Yes | No | No | Yes | Yes | ? |
Visual SourceSafe | No | Yes | ? | Yes (using shares)[24] | Yes | No | No | ? | Yes | ? |
Software | Atomic commits | File renames | Merge file renames | Symbolic links | Pre/post-event hooks | Signed revisions | Merge tracking | End of line conversions | Tags | International Support |
Table Explanation
- Software: The name of the application that is described.
- Atomic commits: refers to a guarantee that all changes made are merged, or that no change at all will be made.
- File renames: describes whether a system allows files to be renamed while retaining their version history.
- Merge file renames: describes whether a system can merge changes made to a file on one branch into the same file that has been renamed on another branch (or vice versa). If the same file has been renamed on both branches then there is a rename conflict that the user must resolve.
- Symbolic links: describes whether a system allows revision control of symbolic links as with regular files. Versioning symbolic links is considered by some people a feature and some people a security breach (e.g., a symbolic link to /etc/passwd). Symbolic links are only supported on select platforms, depending on the software.
- Pre/post event hooks: indicates the capability to trigger commands before or after an action, such as a commit, takes place.
- Signed revisions: refers to integrated digital signing of revisions, in a format such as OpenPGP.
- Merge tracking: describes whether a system remembers what changes have been merged between which branches and only merges the changes that are missing when merging one branch into another.
- End of line conversions: describes whether a system can adapt the end of line characters for text files such that they match the end of line style for the operating system under which it is used. The granularity of control varies. Subversion, for example, can be configured to handle EOLs differently according to the file type, whereas Perforce converts all text files according a single, per-client setting.
- Tags: indicates if meaningful names can be given to specific revisions.
- International Support: Indicates if the software has support for multiple language environments and operating system
[edit] User interfaces
Software | Web interfaces | Stand-alone GUIs | Integration and/or Plug-ins for IDEs |
---|---|---|---|
AccuRev | Yes | Windows, Linux, Unix, Mac OS X, BeOS available | IDEA (AccuRev4IDEA) |
Aldon | Yes | Windows | ? |
Alienbrain | No | Windows, Linux, Mac OS X available | Visual Studio Adobe Photoshop Autodesk Maya Softimage XSI 3ds Max |
AllFusion Harvest Change Manager | included | Windows (incl. explorer integration), Linux, Unix | Eclipse, Visual Studio |
Bazaar | can use a plain webserver, webserve, loggerhead or Trac | Olive, bzr-gtk (GTK+), QBzr (Qt), TortoiseBZR (Windows) | Eclipse (BzrEclipse), Visual Studio (bzr-visualstudio), TextMate (TextMateBundle) |
ClearCase | included, Clearcase Web Interface | Windows, interface for Unix-like systems is mixed command-line and GUI | Eclipse ( IBM Proprietary, Eclipse-CCase ), Visual Studio (IBM proprietary), KDevelop (standard?), IDEA (standard?, 1, 2) |
Code Co-op | Not necessary since entire project is replicated locally | Windows | ? |
CVS | cvsweb, ViewVC, others | TortoiseCVS (Windows Explorer), Mac OS X, GTK, Qt available | Eclipse (Team), KDevelop (standard) IDEA (standard) |
CVSNT | cvsweb, ViewVC, others | Windows, Mac OS X, OS/400, GTK, Qt available | All those that support CVS, plus commercial plugins for SCCI, Bugzilla, Build |
darcs | darcs.cgi included; darcsweb | under development; TortoiseDarcs (Windows Explorer), Mac OS X (alpha) available | Eclipse (eclipsedarcs) |
DesignSync | Yes, Apache included | Unix, Linux, Windows, HPUX | Visual Studio 2003/2005 |
Git | gitweb, wit, cgit | gitk, git-gui (Tcl/Tk), tig, qgit. GTK, (h)gct (Qt) available | Eclipse (JGit/EGit); TextMate (Git TextMate Bundle) |
GNU arch | ArchZoom | ArchWay (GTK2), TlaLog | ? |
LibreSource Synchronizer | LibreSource | Windows, Linux, Unix, Mac OS X available [25] | ? |
Mercurial | included [26] | Hgk (Tcl/Tk), (h)gct (Qt), TortoiseHg (Windows Explorer) | Eclipse (Mercurial Eclipse), NetBeans ([65]), |
Monotone | ViewMTN, TracMonotone | GTK+, Qt available | ? |
Perforce | included, P4Web, P4FTP | Windows, Linux, Unix, Mac OS X, BeOS available | Eclipse, Visual Studio (P4SCC), KDevelop (standard?), IDEA (standard?) |
Plastic SCM | Not necessary since entire project is replicated locally | Windows, Linux, Unix, Mac OS X available | ? |
PureCM | Yes | Windows, Linux, Unix, Mac OS X, Sun Solaris available | Visual Studio (SCC API) |
Razor | Yes, Apache, IIS | Unix, Linux,Windows, Mac OS X | ? |
SourceAnywhere Hosted | not included | Windows, Linux, Unix, Mac OS X, Solaris available | Visual Studio, Eclipse, Dreamweaver |
SourceHaven | included | Windows, Linux, Unix, Mac OS X, BeOS available | ? |
StarTeam | included | Windows, Java, Eclipse, Visual Studio, BDS2006 integration, plus Java command-line | IDEA (standard?) |
Subversion | Apache 2 module included, WebSVN, ViewSVN, ViewVC, Trac, SharpForge | Qt, TortoiseSVN (Windows Explorer), KDESVN, Java, Mac OS X[66], Nautilus | Eclipse (Subclipse, Subversive), Visual Studio (AnkhSVN, Unified SCC, VisualSVN), Netbeans, IDEA (standard), KDevelop (standard), TextMate (SVNMate plugin) |
Surround SCM | WebDAV | Windows, Linux, Unix, Mac OS X | IDEA (proprietary), Eclipse, Visual Studio |
SVK | ? | ? | ? |
Synergy | via Telelogic Change interface | Windows (incl. explorer integration), Linux, Unix, Java, plus command-line and API | Eclipse (Telelogic proprietary), Visual Studio (Telelogic proprietary), IDEA (Telelogic proprietary) |
Team Foundation Server | included (Sharepoint Server used for web services) | Windows included; MacOS, Unix available | Visual Studio. Java client for Eclipse IDE |
Vault | included | Windows, Unix-like, Mac OS X | Visual Studio 2003 and higher, Eclipse 3.2 and higher |
Visual SourceSafe | none included; SSWI, VSS Remoting | Windows included; Linux, Mac OS and Solaris using SourceOffSite; any Java VM using SourceAnyWhere | Visual Studio, IDEA (standard?) |
Software | Web interfaces | Stand-alone GUIs | Integration and/or Plug-ins for IDEs |
Table explanation
- Software: The name of the application that is described.
- Web Interface: Describes whether the software application contains a web interface. A web interface could allow the software to post diagnostics data to a website, or could even allow remote control of the software application.
- GUIs: A GUI is a graphical user interface. If a software product features a GUI its functionality can be accessed through application windows as opposed to accessing functionality based upon typing commands at the command prompt such as a DOS interface.
- Plug-ins: functionality is available through an Integrated Development Environment. Minimum functionality should be to list the revision state of a file and checkin/checkout files.
[edit] History and adoption
This section may require cleanup to meet Wikipedia's quality standards. Please improve this article if you can (November 2007). |
Software | History | Notable users |
---|---|---|
AccuRev | First publicly released on May 18th, 1999 | Clients include: SanDisk, Sony, Orbitz, MCI, and Polycom[citation needed] |
Aldon | Founded in 1979 to provide software configuration and change management solutions to IT | Clients include: Nintendo, AIG, Kraft Foods, Banner Health, EON Bank, and Masterbrand Cabinets[citation needed] |
AllFusion Harvest Change Manager | Initially created to track changes in aircraft manufacture | Halifax (bank), and over 2000 organizations worldwide[citation needed] |
Bazaar | Loosely related to baz | Ubuntu, Launchpad, Drupal (but for main repository CVS still used), KatchTV [67] |
BitKeeper | Evolved from Sun WorkShop TeamWare | Linux Kernel (2002-2005) and many companies [68] |
ClearCase | Developed beginning in 1990 by Atria Software, following concepts developed by Apollo Computer in DSEE during the 1980s | IBM, Cisco, Motorola, Siemens, Ericsson, Nokia and other large organizations worldwide[citation needed] |
Code Co-op | The first distributed VCS, demoed in 1997 [69], released soon after. | Clients include: Logitech, HP, Ericsson[citation needed] |
CVS | First publicly released July 3, 1986; based on RCS | thousands of organizations worldwide[citation needed] |
CVSNT | First publicly released 1998; based on CVS. Started by CVS developers with the goal adding support for a wider range of development methods and processes. | If you search the cvsnt, wincvs and tortoisecvs newsgroups for any Fortune 500 company you like you will see that almost any large company you care to name that develops software uses CVSNT.[citation needed] |
darcs | First announced on April 9, 2003 | DokuWiki, Mnet, Projects Using Darcs |
DesignSync | First released in 1997 by Synchronicity Inc. Synchronicity was acquired in 2004 by MatrixOne, which was acquired by Dassault Systemes in 2006. | 33 of the top 50 Semiconductor Companies[citation needed] |
Git | Started by Linus Torvalds in April 2005, following the BitKeeper controversy | Linux kernel, Cairo, ELinks, Wine, X.Org, XCB, XMMS2 [70], Compiz Fusion, Samba, e2fsprogs, Ruby on Rails, Openbox, GNU Core Utilities |
GNU arch | Started by Tom Lord, it later became part of the GNU project. Lord resigned as maintainer in August 2005. | available for GNU Savannah and Gna.org projects |
LibreSource Synchronizer | First publicly released on June 13th, 2005 | Most of the LibreSource Community |
Mercurial | Started April 6, 2005 by Matt Mackall, following the BitKeeper controversy.[27] First released on April 19, 2005 | Mozilla, NetBeans, Xine, Xen, OpenJDK, OpenSolaris, wmii, MoinMoin, Linux-HA [71] |
Monotone | First released in April 2003 | coLinux, CTWM, OpenEmbedded, Pidgin, Xaraya [72] |
Perforce | Developed by Perforce Software, Inc which was founded in 1995 by Christopher Seiwald. | many organizations worldwide [73], Perl 5[74], FreeBSD[75] , Trolltech |
Plastic SCM | Developed by Codice Software, Inc which was founded in 2005 by Pablo Santos and David Suarez | many organizations[citation needed] |
PureCM | First publicly released in 2005 | ? |
Razor | First publicly released in 1990 | Clients include: Lockheed Martin, Boeing, Motorola, Raytheon and many other leading companies[citation needed] |
Revision Control System | July 1985 | RCS is generally (but not always) superseded by other systems such as CVS, which began as a wrapper on top of RCS. |
Source Code Control System | 1972 | as the POSIX source-control tool, SCCS is widely available on UNIX platforms. Sun WorkShop TeamWare uses SCCS files. |
StarTeam | Developed by StarBase software, acquired by Borland. | Borland, BT, Cintas, EDS, Kaiser Permanente, Met Office, Quest Software, Raymond James, Siemens, and many more globally distributed companies[76] |
Subversion | Started in 2000 by CVS developers with goal of replacing CVS | ASF, SourceForge, Google Code, KDE, GNOME, GCC, Ruby, Python, Mono, PuTTY, Zope, Xiph, GnuPG, CUPS, Wireshark, TWiki, Django, and many organizations worldwide [77] |
Surround SCM | First publicly released on July 29, 2002. | American Stock Exchange, Northrop Grumman, CDC, Ross Systems, Tybrin, and many organizations worldwide[citation needed] |
SVK | Authored by Chia-liang Kao with Audrey Tang. First version was on November 19th, 2003. 1.00 on May 9th, 2005. 2.0.0 on Dec 28th, 2006. SVK became a product of Best Practical on June 5th, 2006. | Best Practical, Fotango, KDE, Catalyst, Request Tracker, Jifty, Ruby on Rails [78] |
Synergy | Developed beginning in 1988 by Caseware, as AmplifyControl. The company was renamed Continuus in 1994, where the product became better known as Continuus/CM. Continuus was acquired by Telelogic in 1999 shortly after going public; the product is now known as Telelogic Synergy. | Nokia, Philips, Raytheon, Morgan Stanley, Friends Provident, Boeing, Lockheed Martin, Siemens and other small, medium and large organizations worldwide[citation needed] |
Team Foundation Server | First publicly released on March, 2006 | Available on CodePlex, Microsoft itself and other large organizations worldwide[citation needed] |
Vault | First publicly released in February, 2003 | ? |
Visual SourceSafe | originally created by a company called One Tree Software, version 3.1. Company was bought by Microsoft which released version 4.0 of VSS around 1995 | ? |
Software | History | Notable users |
Table Explanation
- Software: The name of the application that is described.
- Notable users: is a list of well known projects using the software as their primary revision control system, excluding the software itself, followed by a link to a full list if available.
- History: briefly describes the software's origins and development.
[edit] Notes
- ^ Bazaar is a distributed version control system but it can also be used in a centralized manner using lock step development and checkouts.
- ^ 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.
- ^ As of version 2.5, LibreSource is now released under GPL Version 2.
- ^ SVK allows Subversion to have distributed branches.
- ^ 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.
- ^ A Bazaar bundle is a summary diff, with sufficient extra information to preserve history.
- ^ Mercurial revision numbers are local to a repository; they can differ from repository to repository depending on in which order merges are performed.
- ^ Mercurial 0.5b vs git. overview of performance/scalability. Retrieved on 2006-12-05.
- ^ 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.
- ^ They can be automatically generated[1] and manually verified, but verification is not automatic
- ^ Support multi lingual filenames (across clients and servers with different codepages) and unicode text files.
- ^ darcs' patches each bear a unique identifier, it's pretty much impossible to merge twice the same patch in a repository
- ^ Its possible to embed the action in a shell or Ant script.
- ^ A merged is tracked by its workspace origin.
- ^ Mercurial versions 0.9.4 and higher support symlinks.
- ^ It could be done via user level hooks
- ^ Perforce Knowledge Base: Renaming Files
- ^ StarTeam supports atomic commits as of version 2006
- ^ Subversion can move a file and conserve its history, if and only if the target of the move is in the same Subversion repository as the source. Cross-repository moves require third-party tools such as svk. Also, a rename operation is actually a copy-with-history-and-delete sequence.
- ^ A separate tool "svnmerge" provides merge tracking, see [2]. Merge tracking will be included in Subversion itself in the next major release, see [3]
- ^ In Subversion, tags are a special case of the more generic "cheap copy" concept of Subversion. Per convention, a tag is a copy into a directory named "tags". Because of this, even tags are versioned. See [4] for more information. The reason for partial support in the table is because Subversion's emulation of tags in this manner does not meet the requirement that the tag name can be used in place of any revision identifier wherever the user may be required to enter one. This column would be meaningless if the definition were to be loosened enough to encompass Subversion's approach as every version control system supports branching and would therefore support tags as well.
- ^ Uses subversion server
- ^ Signature - SVK Wiki
- ^ Note that VSS Shares do not support anything like actual Unix symbolic links
- ^ Any OS that support a Java Virtual Machine 1.5
- ^ hgweb for single-repository access and hgwebdir for multiple repository access from a single HTTP address
- ^ Towards A Better SCM: Revlogs and Mercurial, presented by Matt Mackall to the Ottawa Linux Symposium, July 2006
[edit] See also
[edit] External links
- Comments on Open Source Software / Free Software SCM systems by David A. Wheeler
- Quick Reference Guide to Free Software Decentralized Revision Control Systems by Zooko
- Comparison of commercial Version Control Systems, from the creators of Code Co-op
- Version Control System Comparison from better-scm.berlios.de
- Evaluation of distributed source code management solutions for OpenSolaris by Sun