Software:Comparison of version control software

From HandWiki

The following is a comparison of version control software. The following tables include general and technical information on notable version control and software configuration management (SCM) software. For SCM software not suitable for source code, see Comparison of open source configuration management software.

General information

Table explanation

  • 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.
Software Maintainer Development status Repository model Concurrency model License Platforms supported Cost
AccuRev SCM Micro Focus International Active Client–server Merge or lock Proprietary Most Java Platforms (Unix-like, Windows, OS X) Non-free Quoted on an individual basis. $350 /seat
GNU Bazaar Canonical Ltd. Active Distributed and Client–server Merge GNU GPL Unix-like, Windows, OS X Free
BitKeeper BitMover Inc. Active Distributed Merge Apache Unix-like, Windows, OS X Free
ClearCase IBM Rational Active Client–server Merge or lock[nb 1] Proprietary Linux, Windows, AIX, Solaris, HP UX, i5/OS, OS/390, z/OS, Non-free $4600 per floating license (held automatically for 30-minutes minimum per user, can be surrendered manually)
Code Co-op Reliable Software Active Distributed Merge Proprietary Windows Non-free $150 per seat
Codeville Ross Cohen official site offline; latest release July 13, 2007 (2007-07-13) Distributed precise codeville merge BSD Unix-like, Windows, OS X Free
CVS The CVS Team[1] maintained but new features not added Client–server Merge GNU GPL Unix-like, Windows, OS X Free
CVSNT March Hare Software[2] and community members maintained and new features under development Client–server Merge or lock GPL or proprietary Unix-like, Windows, OS X, i5/OS Free (with £425 distribution fee) for older version or £85 commercial license for latest version of CVS Suite or Change Management Server
darcs The Darcs team Active Distributed Merge GNU GPL Unix-like, Windows, OS X Free
Dimensions CM Serena Software Active Client–server Merge or lock Proprietary Windows, Linux, Solaris, AIX, HP UX, z/OS Non-free
Endevor CA Technologies[3] Active Client-server Merge or Lock Proprietary z/OS Non-free
Fossil D. Richard Hipp Active Distributed Merge BSD POSIX, Windows, OS X, Other Free
Git Junio Hamano Active Distributed Merge GNU GPL POSIX, Windows, OS X Free
GNU arch Andy Tai unmaintained Distributed Merge GNU GPL Unix-like, Windows, OS X Free
IC Manage IC Manage Inc. Active Client–server Merge or lock Proprietary Unix-like, Windows, OS X Non-free Commercial
PTC Integrity PTC Active Client–server Merge or lock Proprietary Unix-like, Windows Non-free
Mercurial Matt Mackall Active Distributed Merge GNU GPL Unix-like, Windows, OS X Free
Monotone Nathaniel Smith, Graydon Hoare Active Distributed Merge GNU GPL Unix-like, Windows, OS X Free
Perforce Helix Core Perforce Software Inc. Active Client–server and Distributed Merge or lock Proprietary Unix-like, Windows, OS X Available as perpetual license and subscriptions; prices vary based on configurations and options[4]
pijul Active Distributed Merge GNU GPL Unix-like, Windows, OS X Free
Plastic SCM Codice Software Active Client–server and Distributed control systemDistributed Merge or lock Proprietary Linux, Windows, OS X Free for up to 15 users; else starting at $595 per seat, or $3,500 per 25 developers per year[5]
PVCS Serena Software Active Client–server Lock Proprietary Windows, Unix-like Non-free
Rational Team Concert IBM Rational Active Merge or lock Proprietary Linux, Windows, AIX, Solaris, HP UX, i5/OS, OS/390, z/OS, OS X Free for up to 10 users; else non-free
Revision Control System Thien-Thi Nguyen Active local Merge or lock GNU GPL Unix-like Free
SCM Anywhere Dynamsoft Corporation Active Client–server Merge or Lock Proprietary Unix-like, Windows, OS X Non-free Single user free; $299 per user, bulk discount available
Source Code Control System Jörg Schilling[nb 2] Active local lock[nb 3] CDDL / proprietary[nb 4] Unix-like, Windows, OS X While SCCS has traditionally been bundled in commercial UNIX distributions, free CDDL-licensed versions exist
StarTeam Borland (Micro Focus) Active Client–server Merge or lock Proprietary Windows and Cross-platform via Java based client Non-free Quoted on an individual basis.
Subversion (SVN) Apache Software Foundation[6] Active Client–server[nb 5] Merge or lock[nb 6] Apache Unix-like, Windows, OS X Free
Surround SCM Seapine Software Active Client–server Merge or lock Proprietary Linux, Windows, OS X Non-free $595 per named user; $29/month subscription
SVK Best Practical unmaintained Client–server, decentralized Merge Artistic/GPL Unix-like, Windows, OS X Free
Team Foundation Server (TFS) Microsoft Active Client–server, Distributed Merge or lock Proprietary Windows, cross-platform via Visual Studio Team Services Free for up to 5 users in the Visual Studio Team Services or for open source projects through codeplex.com; else non-free, licensed through MSDN subscription or direct buy.
Synergy IBM Rational Active Client–server and Distributed Merge or lock Proprietary Linux, Windows, Unix-like Non-free Contact IBM Rational[7]
Vault SourceGear LLC Active Client–server Merge or lock Proprietary Unix-like, Linux, Windows Non-free $300 per user
Veracity SourceGear LLC web site appears unmaintained; latest release March 25, 2013 (2013-03-25) Distributed Merge or lock Apache Unix-like, Linux, Windows Free
Vesta Kenneth Schalk; Tim Mann,[8][9] web site not updated since 2006; latest release February 15, 2009 (2009-02-15) Distributed NFS-protocol-emulation choice to optionally confederate clients and/or servers lock on branch; merge branch-to-branch LGPL Tru64, Linux Free
Visual SourceSafe (VSS) Microsoft serious bug fixes only Shared Folder Merge or lock Proprietary Windows Non-free ~$500 per license or single license included with each MSDN subscription.
Visual Studio Team Services Microsoft Active Client–server, Distributed Merge or lock Proprietary Windows, cross-platform via Visual Studio Team Services Free for up to 5 users in the Visual Studio Team Services or for open source projects through codeplex.com; else non-free, licensed through MSDN subscription or direct buy.
Software Maintainer Development status Repository model Concurrency model License Platforms supported Cost

Technical information

Table explanation

  • Software: The name of the application that is described.
  • Programming language: The coding language in which the application is being developed
  • Storage Method: Describes the form in which files are stored in the repository. A snapshot indicates that a committed file(s) is stored in its entirety—usually compressed. A changeset, in this context, indicates that a committed file(s) is stored in the form of a difference between either the previous version or the next.
  • Scope of change: Describes whether changes are recorded for individual files or for entire directory trees.
  • 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). With Integrated Difference, revisions are based on the Changesets themselves, which can describe changes to more than one file.
  • Network protocols: lists the protocols used for synchronization of changes.
  • Source code size: Gives the size of the source code in megabytes.
Software Programming language Storage method Scope of change Revision IDs Network protocols Source code size
AccuRev SCM C++, Java Changeset File Number pair NN/NN custom Unknown
GNU Bazaar Python 2, Pyrex (optional), C[nb 7] Snapshot Tree Pseudorandom custom, custom over ssh, custom over HTTP, HTTP, SFTP, FTP, email bundles,[nb 8] WebDAV (with plugin) 4.1 MB
BitKeeper C Changeset Tree Changeset keys, numbers custom, HTTP, rsh, ssh, email 99 MB
CA Software Change Manager C, C++, Java, HTML Changeset and Snapshot Numbers HTTP, TCP/IP Unknown
ClearCase C, Java, Perl Changeset File and Tree [10] Numbers custom (CCFS), custom (MVFS filesystem driver), HTTP Unknown
Code Co-op C++ Changeset Unknown User ID-Ordinal e-mail (MAPI, SMTP/POP3, Gmail), LAN Unknown
Codeville Python Unknown Unknown Unknown Unknown Unknown
CVS C Changeset File Numbers pserver, ssh 10.3 MB
CVSNT C++ Changeset File and Tree[11] Numbers custom over ssh, sspi, sserver, gserver, pserver 55 MB
darcs Haskell Changeset (Patch)[nb 9] Tree n/a custom over ssh, HTTP, email 1.7 MB
Dimensions CM C, C++, Java, C# Snapshot or changeset File and Tree Numbers Custom, HTTP/HTTPS Unknown
Fossil C Snapshot or changeset [12] Tree SHA-1 or SHA-3 hashes [13] HTTP/HTTPS, custom over ssh 7.2 MB[nb 10]
Git C, shell scripts, Perl Snapshot Tree SHA-1 hashes custom (git), custom over ssh,[14] HTTP/HTTPS, rsync, email, bundles 23 MB [15]
GNU arch C, shell scripts Changeset Tree Numbers HTTP, WebDAV Unknown
IC Manage C++, C Changeset Unknown Numbers custom Unknown
Mercurial Python, C Changeset Tree Numbers,[nb 11] SHA-1 hashes custom over ssh, HTTP, email bundles (with standard plugin) 20 MB
MKS Integrity C, Java Changeset File Numbers custom, HTTP Unknown
Monotone C++ Hybrid[nb 12] Tree SHA-1 hashes custom (netsync), custom over ssh, file system 4.4 MB
Perforce Helix Core C++, C Changeset Tree Numbers custom Unknown
PVCS C++, C Changeset File Numbers Unknown Unknown
Rational Team Concert Java Changeset Tree Numbers REST services over HTTP/HTTPS Unknown
Revision Control System C Changeset File Numbers File system 5.3 MB
SCM Anywhere C++, Java, C# Changeset File and Tree Numbers SOAP over HTTP or HTTPS Unknown
Source Code Control System C Changeset File Numbers NFS 1.3 MB
StarTeam C++, C, Java Snapshot File and Tree MD5 hashes custom, TCP/IP Unknown
Subversion C Changeset and Snapshot Tree Numbers custom (svn), custom over ssh, HTTP and SSL (using WebDAV) 41 MB
Surround SCM C++ Changeset File and Tree Numbers TCP/IP Unknown
SVK Perl Changeset Tree Numbers Unknown Unknown
Synergy Java Changeset (text), Snapshot(binary) File Numbers custom, custom over ssh, HTTP Unknown
Team Foundation Server C++ and C# Changeset File and Tree Numbers SOAP over HTTP or HTTPS, Ssh Unknown
Vault C# Changeset File and Tree Numbers HTTP, HTTPS Unknown
Veracity C, JavaScript Changeset Tree Numbers, [nb 13] SHA-1, SHA-2 and Skein hashes. HTTP 52 MB
Vesta C++ Snapshot Tree Unknown NFS 15.8 MB
Visual SourceSafe C Snapshot File Numbers SMB, DCOM Unknown
Visual Studio Team Services C++ and C# Changeset File and Tree Numbers SOAP over HTTP or HTTPS, Ssh Unknown
Software Programming language Storage method Scope of change Revision IDs Network protocols Source code size

Features

Table explanation

  • Software: The name of the application that is described.
  • Atomic commits: refers to a guarantee that all changes are made, 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 to a single, per-client setting.
  • Tags: indicates if meaningful names can be given to specific revisions, regardless of whether these names are called tags or labels.
  • International support: indicates if the software has support for multiple language environments and operating system
  • Unicode filename support: indicates if the software has support for interoperations under file systems using different character encodings.
  • Supports large repos: Can the system handle repositories of around a gigabyte or larger effectively?
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 Unicode filename support Supports large repos
AccuRev SCM Yes Yes Partial[nb 14] Yes Yes Yes Yes Yes N/A Yes Yes[16] Yes[17][18]
GNU Bazaar Yes Yes Yes Yes Yes Yes Yes Yes[19] Yes Yes Yes Unknown
BitKeeper Yes Yes Yes Yes Yes Unknown Yes Yes Yes Unknown Unknown Yes
CA Software Change Manager Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Unknown
ClearCase Partial[nb 15] Yes Yes Yes Yes Yes Yes Yes Yes Yes[20] Unknown Yes
Code Co-op Yes Yes Yes No Partial No No No Yes Unknown Unknown Unknown
Codeville Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown
CVS No No No No Partial No No Yes Yes Unknown No Yes
CVSNT Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes
darcs Yes Yes Yes No[nb 16] Yes Yes N/A[nb 17] No Yes No Yes[nb 18] Unknown
Dimensions CM Yes Yes Yes No Yes Unknown Yes Yes Yes [nb 19] No [nb 20] Yes Yes
Fossil Yes Yes Yes Yes No Yes Yes Yes[nb 21] Yes Yes Yes Unknown
Git Yes Partial[nb 22] Yes Yes Yes Yes[nb 23] Yes Yes Yes Yes Yes[nb 24] Partial[nb 25]
GNU arch Yes Yes Unknown Yes Yes Yes Unknown Unknown Yes Unknown Unknown Unknown
IC Manage Yes Yes No Yes Yes Yes Yes Yes Yes Yes Unknown Unknown
MKS Integrity Yes Yes Yes No Yes Yes[nb 26] Yes[nb 27] Yes Yes Yes Yes Unknown
Mercurial Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes[nb 28] Partial[nb 29] Yes[21]
Monotone Yes Yes Yes No[nb 30] Yes Yes, mandatory Yes Yes Yes Unknown Yes Unknown
Perforce Helix Core Yes Yes[22] Yes[23] Partial[nb 31] Yes No Yes[24] Yes Yes Yes[25] Yes[26] Yes
Rational Team Concert Yes Yes Yes Yes Yes[nb 32] Yes Yes Yes Yes Yes Yes Unknown
Source Code Control System Yes No N/A N/A No No Yes No No Partial[nb 33] Yes Yes
StarTeam Yes[nb 34] Yes Unknown Yes No No Yes Yes Yes Yes Unknown Yes
Subversion Yes Yes[nb 35] Partial[nb 36] Yes Yes No[nb 37] Yes.[nb 38] Yes Partial[nb 39] Yes Yes Yes
Surround SCM Yes Yes Yes Yes Yes Yes Yes Yes Yes[27] Yes Yes Yes
SVK Yes Yes Yes Yes Yes[nb 40] Yes[28] Yes Yes Yes Yes Unknown Unknown
Synergy Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes[nb 41] Yes
Team Foundation Server Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes Yes
Vault Yes Yes Yes No Yes No No Yes Yes Unknown Unknown Unknown
Veracity Yes Yes Yes Yes Yes No Yes Yes Yes No Yes Yes
Vesta Yes Yes Unknown Unknown Yes No No No Yes No Unknown Yes
Visual SourceSafe No No[nb 42] Unknown No Yes No No Unknown Yes Yes Unknown Unknown
Visual Studio Team Services Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes 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 Unicode filename support Supports large repos

Advanced features

Table explanation

  • keyword expansion: supports automatic expansion of keywords such as file revision number.
  • interactive commits: interactive commits allow the user to cherrypick common lines of code used to anchor files (patch-hunks) that become part of a commit (leaving unselected changes as changes in the working copy), instead of having only a file-level granularity.
  • external references: embedding of foreign repositories in the source tree
  • partial checkout/clone: ability to check out or clone only a specified subdirectory from a repository.
  • permissions: tracks file permission bits in the revision history.
  • timestamp preservation: overwrites the last modified filesystem attribute with the commit time upon checkout.
  • custom automatic merge tool: automatic merging can be attempted by any tool of the user's choice (hopefully configurable on a per-file basis)
  • supported formats: either read/write support or read-only (conversion, potentially repeated)
  • shared build cache of derived objects: the ability to automatically substitute (wink-in) derived-objects that were built by other confederated clients that share exactly the same dependencies instead of rebuilding them locally
Software Keyword expansion Interactive commits External references Partial checkout/clone Permissions Timestamp preservation Custom automatic merge tool Supported formats Shared build cache of derived objects
AccuRev SCM Yes Unknown Yes Yes execution bit only Yes Yes git (bi-dir)[29] No
GNU Bazaar Yes[30] Yes[31] Yes[32] No execution bit only No[nb 43] Yes[33] bzr, subversion,[34] git,[35] hg,[36] any that has a fastexporter No
BitKeeper POSIX and RCS Yes Yes Yes Yes Yes Yes bitkeeper No
CA Software Change Manager No Yes No Yes execution bit only Yes Yes CA Software Change Manager No
ClearCase Yes[37] No No Yes Yes Yes[nb 44] Yes ClearCase Yes
CVS RCS No Yes Yes[nb 45] Partial[nb 46] Yes No cvs No
CVSNT RCS Yes[nb 47] Yes[nb 48] Yes[nb 49] Yes Yes No cvs Yes[nb 50]
darcs No Yes No No[nb 51] Partial[nb 52] No conflicts only darcs No
Dimensions CM Yes No Yes[nb 53] Yes Yes Yes Yes Migration from ClearCase, Subversion, CVS, PVCS, ChangeMan DS Unknown
Fossil No Yes Yes[nb 54] No execution bit only[38] No No fossil (uses sqlite), any that has a fastexporter[39] No
Git No[nb 55] Yes[nb 56] Yes[40] Yes[41] execution bit only No[nb 57] Yes git, cvs, subversion, hg, any that has a fastexporter No
Mercurial Yes[42] Yes[43] Yes[44] Yes[45] execution bit only through (alpha) extension[46] Yes[47] hg, subversion,[48] git,[49] any other format supported by the Convert extension[50] No
Perforce Helix Core Yes[51] No No Yes Yes Yes[51] Yes[51] Perforce No
Rational Team Concert No Yes Yes Yes Yes Unknown Unknown N/A No
Source Code Control System Yes No N/A Yes execution bit only No No
Surround SCM Yes No No Yes No Yes Yes[nb 58] Surround No
SVK Yes Yes[nb 59] Unknown Yes Unknown Unknown Unknown subversion No
Subversion Yes[52] Partial[nb 60] Yes[53] Yes execution bit only Partial[nb 61] Yes[nb 62] subversion No
Team Foundation Server No Yes Unknown Yes Yes Unknown Yes Unknown Unknown
Veracity No No No No Yes Yes Yes git, cvs, subversion, hg, any that has a fastexporter No
Vesta No No Yes via SDL No Unknown Yes No Vesta Yes
Visual SourceSafe Yes Unknown Unknown Yes Yes Unknown Yes Unknown No
Visual Studio Team Services No Yes Unknown Yes Yes Unknown Yes Unknown Unknown
Software Keyword expansion Interactive commits External references Partial checkout/clone Permissions Timestamp preservation Custom automatic merge tool Supported formats Shared build cache of derived objects

Basic commands

Table explanation

  • Commands in green rectangles that are not surrounded by [square brackets] are at an interactive command-line prompt. Text in [square brackets] is an explanation of where to find equivalent functionality.
  • repository init: Create a new empty repository (i.e., version control database)
  • clone: Create an identical instance of a repository (in a safe transaction)
  • pull: Download revisions from a remote repository to a local repository
  • push: Upload revisions from a local repository to a remote repository
  • local branches: Create a local branch that does not exist in the original remote repository
  • checkout: Create a local working copy from a (remote) repository
  • update: Update the files in a working copy with the latest version from a repository
  • lock: Lock files in a repository from being changed by other users
  • add: Mark specified files to be added to repository at next commit
  • remove: Mark specified files to be removed at next commit (note: keeps cohesive revision history of before and at the remove.)
  • move: Mark specified files to be moved to a new location at next commit
  • copy: Mark specified files to be copied at next commit
  • merge: Apply the differences between two sources to a working copy path
  • commit: Record changes in the repository
  • revert: Restore working copy file from repository
  • generate bundle file: Create a file that contains a compressed set of changes to a given repository
  • rebase: Forward-port local commits to the updated upstream head
Software Repository init clone pull push Local branches checkout update lock add remove move copy merge commit revert generate bundle file rebase
AccuRev SCM mkdepot N/A N/A N/A mkstream mkws update anchor add defunct move cp [then] add / incl -s / ln merge keep / promote purge / revert N/A chstream
GNU Bazaar init / init --no-tree[nb 63] / init-repo / init-repo --no-trees[nb 64] branch / branch --no-tree[nb 65] pull push init / branch checkout / checkout --lightweight[nb 66] update N/A add rm mv N/A merge commit revert send rebase[nb 67]
BitKeeper setup clone pull -R push clone co pull Unknown add rm mv cp pull commit undo makepatch collapse
ClearCase init N/A N/A N/A N/A checkout update lock / unlock mkelem rmname mv N/A merge checkin uncheckout / rmver N/A findmerge
CVS init N/A N/A N/A N/A checkout update Unknown add rm N/A N/A update -j commit remove [then] update N/A N/A
CVSNT init N/A N/A N/A N/A checkout update edit add rm rename N/A update -j commit update -C N/A N/A
darcs init clone pull [54] push N/A[nb 68] clone pull[54] Unknown add remove move N/A pull / push record revert send -o[nb 69] rebase
Fossil new / open clone pull push branch / commit --branch clone/open update N/A add rm/del mv/rename N/A merge commit revert Fossil's repository is single sqlite file itself N/A
Git init / init --bare clone / clone --bare fetch push branch checkout pull N/A add rm mv cp [then] git add[nb 70] merge commit revert bundle rebase
Mercurial init clone pull push bookmark[nb 71] update / up / checkout / co pull -u N/A add remove / rm move / mv copy / cp merge commit / ci revert bundle rebase[55]
Monotone init clone pull push N/A checkout update Unknown add drop rename N/A merge commit revert N/A N/A
Perforce Helix Core p4 client && p4 sync p4 sync p4 sync p4 submit Requires migration to recent streams feature edit sync lock / unlock add delete move copy integrate submit revert Unknown N/A
SVK svk depotmap [or] svnadmin create) mirror pull push copy checkout update Unknown add rm mv cp merge commit revert N/A smerge -I
Subversion svnadmin create svnadmin hotcopy [work-around]: svnadmin load [work-around]: svnadmin dump N/A checkout / co update / up lock add delete / del / remove / rm move / mv / rename / ren copy / cp merge commit / ci revert N/A N/A
Surround SCM mkmainline N/A N/A N/A mkbranch checkout get checkout add rm move N/A merge checkin voidcheckout N/A rebase
Team Foundation Server using Git clone using Git get commit shelfset checkout get lock add delete rename using Git merge commit undo using Git get
Veracity repo init clone pull push branch checkout pull -u lock add rm mv N/A merge commit revert N/A N/A
Vesta vcreate vrepl vrepl vrepl N/A vcheckout vadvance vcheckout [… then] vcheckin[nb 72] vrm mv [then] vcheckin[nb 73] cp [then] vcheckin[nb 74] vdiff vcheckin vcheckin -c 0 vmake [or] vesta vadvance
Visual SourceSafe ? Unknown Unknown Unknown N/A Get Latest Get Latest Check Out Add Files Delete ? Unknown ? Check In Undo Check Out Unknown Unknown
Visual Studio Team Services using Git clone using Git get commit shelfset checkout get lock add delete rename using Git merge commit undo using Git get
Software Repository init clone pull push Local branches checkout update lock add remove move copy merge commit revert generate bundle file rebase

Advanced commands

Table explanation

  • Commands in green rectangles that are not surrounded by [square brackets] are at an interactive command-line prompt. Text in [square brackets] is an explanation of where to find equivalent functionality.
  • command aliases: create custom aliases for specific commands or combination thereof
  • lock/unlock: exclusively lock a file to prevent others from editing it
  • shelve/unshelve: temporarily set aside part or all of the changes in the working directory
  • rollback: remove a patch/revision from history
  • cherry-picking: move only some revisions from a branch to another one (instead of merging the branches)
  • bisect: binary search of source history for a change that introduced or fixed a regression
  • incoming/outgoing: query the differences between the local repository and a remote one (the patches that would be fetched/sent on a pull/push)
  • grep: search repository for lines matching a pattern
  • record: include only some changes to a file in a commit and not others
Software Command aliases Lock/unlock Shelve/unshelve Rollback Cherry-picking Bisect Incoming/outgoing Grep Record
AccuRev SCM No enable file locking No revert / purge promote No No No Unknown
GNU Bazaar [in '.bazaar/bazaar.conf' file] No shelve/unshelve uncommit merge (non-tracking) bisect (bisect plugin) missing --theirs-only/missing --mine-only grep (grep plugin) No
BitKeeper Unknown Unknown park/unpark undo Unknown bisect changes -R/-L grep Unknown
CVSNT [in '.cvsrc' file] edit -x/unedit[nb 75] No admin -o[nb 76] yes[nb 77] annotate[nb 78] No no[56] No
Darcs No No revert/unrevert unrecord yes[nb 79] test --bisect pull/push --dry-run No record
Fossil No No stash pop/stash apply[nb 80] merge --rollback merge --cherrypick bisect No search No
Git [in '.gitconfig' file] No stash/stash pop[nb 81] reset HEAD^ cherry-pick bisect cherry grep add -p
Mercurial [in '.hgrc' file] No shelve/unshelve (bundled extension[57]) strip (bundled extension[58]) graft(core[59]) or transplant(bundled extension[60]) bisect incoming/outgoing grep record (bundled extension[61])
Monotone [in monotonerc] No No kill_rev_locally[nb 82] pluck bisect No No Unknown
Perforce Helix Core via broker[62] lock/unlock shelve/unshelve obliterate integ[63] Unknown Unknown grep Unknown
SVK No No No No svk merge No status[nb 83] No No
Subversion No lock/unlock shelve/unshelve[nb 84] No svnmerge cherry-picking Third party tool[nb 85] status -u[nb 86] No No
Surround SCM No checkout shelf rollback duplicatechanges No diff search No
Team Foundation Server Yes lock/unlock shelve/unshelve rollback merge No Unknown Unknown No
Veracity No lock/unlock [nb 87] No No No No incoming/outgoing No No
Visual Studio Team Services Yes lock/unlock shelve/unshelve rollback merge No Unknown Unknown No
Software Command aliases Lock/unlock Shelve/unshelve Rollback Cherry-picking Bisect Incoming/outgoing Grep Record

User interfaces

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 check in/check out files.
Software Web interfaces Stand-alone GUIs Integration and/or Plug-ins for IDEs
AccuRev SCM Yes Windows (incl. Explorer integration), Linux, Unix, OS X, BeOS available IntelliJ IDEA, Eclipse, Visual Studio
GNU Bazaar can use a plain webserver Olive, bzr-gtk (GTK+), Bazaar Explorer (Qt), QBzr (Qt), TortoiseBzr (Windows) Eclipse (BzrEclipse, QBzrEclipse), Visual Studio (bzr-visualstudio), TextMate (TextMateBundle), Komodo IDE, WingIDE
BitKeeper included included (bkd) Unknown
CA Software Change Manager included Eclipse-based GUI Eclipse, MS Visual Studio
ClearCase included, Clearcase Web Interface older: MS Windows native, Motif-based GUI for Unix-like systems, TSO client for z/OS. Emacs, Eclipse ( IBM Proprietary, Eclipse-CCase ), Visual Studio (IBM proprietary), KDevelop (standard?), IntelliJ IDEA (standard in Ultimate Edition)
Code Co-op Not necessary since entire project is replicated locally Windows Unknown
CVS cvsweb, ViewVC, others TortoiseCVS, TkCVS (Tcl/Tk), (Windows Explorer), WinCVS, OS X, GTK, Qt available Eclipse (Team), KDevelop (standard), IntelliJ IDEA (standard in Community and Ultimate Editions), Emacs (standard VC), Komodo IDE, BBEdit, WingIDE
CVSNT cvsweb, ViewVC, others Windows, OS X, OS/400, GTK, Qt available All those that support CVS, plus commercial plugins for SCCI, Bugzilla, Build
darcs darcs.cgi included; darcsweb, Trac under development; TortoiseDarcs (Windows Explorer), OS X (alpha), Eclipse (eclipsedarcs), Emacs (vc-darcs.el)
Dimensions CM Yes Windows (incl. explorer integration) Eclipse, Visual Studio, IntelliJ IDEA, XCode, Powerbuilder
Fossil Embedded webserver included (ui/server mode), ability to run multiple repositories via CGI mode fuel-scm Unknown
Git Gitweb, wit, cgit, GitLab, GitHub, gitorious, Trac, Kallithea, Bitbucket, Stash, Springloops, Bonobo Git Server gitk, git-gui (Tcl/Tk), tig, Gitbox (OS X), TortoiseGit, qgit, gitg (GNOME/GTK), (h)gct (Qt), git-cola (Qt), Git Extensions (Windows), GitEye, SmartGit/Hg, Tower, SourceTree (OS X/Windows), Sprout (OS X), GitX (OS X), GitUp (OS X), GitKraken Aptana 3 Beta (Aptana Studio 3 with Git Integration); Eclipse (JGit/EGit); Helix TeamHub; Netbeans (NbGit); KDevelop; Visual Studio (Git Extensions); Emacs (extension for standard VC); SAP Web IDE; TextMate (Git TextMate Bundle); Vim (VCSCommand plugin and fugitive plugin); IntelliJ IDEA >8.1 (standard in Community and Ultimate Editions); Komodo IDE; Anjuta; XCode, WingIDE; PyCharm
GNU arch ArchZoom ArchWay (GTK2), TlaLog Emacs (standard VC)
IC Manage included Windows, Linux, Unix, OS X Emacs, Cadence Design Framework, Synopsys Custom Designer
MKS Integrity Yes Windows, Linux, Unix, Solaris, AIX, Eclipse, Microsoft Visual Studio, Perforce and others. Also provides support for the industry standard Source Code Control (SCC) interface[64]
Mercurial included,[nb 88] Bitbucket, Trac, Kallithea Hgk (Tcl/Tk), (h)gct (Qt), TortoiseHg (Windows Explorer, Nautilus), MacHg,

MacMercurial, Murky, SourceTree (Windows/OS X), TortoiseHg, SmartGit/Hg

IntelliJ IDEA (hg4idea 3rd party plugin), Eclipse (Mercurial Eclipse), NetBeans, Visual Studio 2008, Emacs, Vim (VCSCommand plugin), Komodo IDE, Eric Python IDE, WingIDE
Monotone ViewMTN, TracMonotone, Monotone-Viz (GTK+), Guitone (Qt), Monotone Browser (GTK+, Perl) Unknown
Perforce Helix Core included, P4Web, P4FTP Windows, Linux, Mac OS X Eclipse, Visual Studio, Matlab; Game Engines: Unity, Unreal, Amazon Lumberyard; Graphics: Autodesk Maya, 3ds max, Adobe PS
Rational Team Concert Yes Eclipse-based GUI Eclipse integration; MS Visual Studio integration(Limited)
StarTeam included Windows, Java, Eclipse, Visual Studio, BDS2006 integration, plus Java command-line IntelliJ IDEA (standard in Ultimate Edition), Visual Studio, JBuilder, Eclipse
Subversion Apache 2 module included, WebSVN, ViewSVN, ViewVC, Trac, SharpForge, sventon, Springloops Java, KDESVN, OS X[65] (including Finder integration), Nautilus, Qt, RabbitVCS, RapidSVN, SourceTree (OS X), TortoiseSVN (Windows Explorer) Anjuta, BBEdit, Eclipse (Subclipse, Subversive), Emacs (standard VC), IntelliJ IDEA (standard in Community and Ultimate Editions), KDevelop (standard), Komodo IDE, MonoDevelop (standard), Netbeans, RabbitVCS (for GEdit), TextMate (SVNMate plugin), Visual Studio (AnkhSVN, VisualSVN), WingIDE. See also Comparison of Subversion clients
Surround SCM Yes Windows, OS X, Linux Dreamweaver, Eclipse, IntelliJ IDEA, JDeveloper, KDevelop, NetBeans, Powerbuilder, Visual Studio, WebStorm
Synergy via Telelogic Change interface Windows (incl. explorer integration), Linux, Unix Eclipse (Telelogic proprietary), Visual Studio (Telelogic proprietary), IntelliJ IDEA (Telelogic proprietary)
Team Foundation Server included (Sharepoint Server used for web services) Windows included; OS X, Unix available Visual Studio. Java client for Eclipse IDE and IntelliJ IDEA (standard in Ultimate Edition)
Vault included Windows, Unix-like, OS X Visual Studio 2003 and higher, Eclipse 3.2 and higher
Veracity included Tortoise interface for Windows No
Vesta VestaWeb No No
Visual SourceSafe none included; SSWI, VSS Remoting Windows included; Linux, OS X and Solaris using SourceOffSite; any Java VM using Sourceanywhere for VSS Visual Studio, IntelliJ IDEA (standard in Ultimate Edition)
Visual Studio Team Services Yes Windows included; OS X, Unix available Visual Studio. Java client for Eclipse IDE and IntelliJ IDEA (standard in Ultimate Edition)
Software Web interfaces Stand-alone GUIs Integration and/or plug-ins for IDEs

History and adoption

Table explanation

  • Software: The name of the application that is described.
  • History: briefly describes the software's origins and development.
  • 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.
Software History Notable users
AccuRev SCM 2002 First publicly released in 2002 American Airlines, Ford, Lockheed Martin, Orbitz,[66] Xerox, McAfee,[67] Polycom, SanDisk,[68] Siemens, Sony, Symantec,[69] Thomson Financial, Verizon Wireless[70] and many others
GNU Bazaar 2005 Initial release March 26, 2005. Loosely related to baz. Sponsored by Canonical Ltd.. Ubuntu, Launchpad, KatchTV,[71]
BitKeeper 2000 Initial release May 4, 2000. Influenced by Sun WorkShop TeamWare Linux Kernel (2002–2005) and many companies[72]
CA Software Change Manager 1995 Original company founded in 1977; CA SCM (then called CCC/Harvest) first released in 1995. CA does not disclose customer lists without the companies' permission. CA SCM is used by companies with global development teams including 13 of the Fortune 100.
ClearCase 1990 Developed beginning in 1990 by Atria Software, following concepts developed by Apollo Computer in DSEE during the 1980s. The most recent version is 9.0.0, released in March 2016. IBM, Alcatel-Lucent, Cisco, Motorola, Siemens, Ericsson, Nokia, Society for Worldwide Interbank Financial Telecommunication and other large organizations worldwide[citation needed]
Code Co-op 1997 The first distributed VCS, demoed in 1997,[73] released soon after.
CVS 1986 First publicly released July 3, 1986; based on RCS NetBSD, OpenBSD
CVSNT 1998 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. Primarily professionals (not hobbyists), e.g.: AnandTech,[74] Wachovia,[75] Wells Fargo,[76] Goldman Sachs [77]
darcs 2003 First announced on April 9, 2003 Mnet, xmonad, Projects Using Darcs
Dimensions CM 1989 Developed by SQL Software under the name "PCMS Dimensions" during the late 1980s (PCMS standing for Product Configuration Management). Through number of company acquisitions the product was released under names "PVCS Dimensions" (1990s, Intersolv), "Dimensions" (early 2000s, Merant), "ChangeMan Dimensions" (2004, Serena Software) and finally "Dimensions CM" (since 2007, Serena Software). Lockheed Martin, European Space Agency, Fujitsu Business Communication Systems and many companies worldwide[78]
Fossil 2007 Fossil and SQLite have used Fossil since 21 July 2007. SQLite, Tcl/Tk Project
Git 2005 Started by Linus Torvalds in April 2005, following the BitKeeper controversy.[79] Linux kernel, Android, Bugzilla, DragonFly BSD, GNOME, GNU Emacs, GRUB2, KDE, MySQL, Perl 5,[80] PostgreSQL, X.Org, Cairo, Qt Development Frameworks, Samba, OpenEmbedded, Ruby, Ruby on Rails, Wine, Fluxbox, Openbox, Compiz Fusion, XCB, ELinks, XMMS2, e2fsprogs, GNU Core Utilities, DokuWiki, Drupal, LibreOffice, MediaWiki,[81] Mono, ASP.NET MVC, ADO.NET Entity Framework, NuGet, jQuery and many of its plugins, OpenCV, Wireshark, Django, many companies like Ericsson, Microsoft[82], Huawei, Apple, Amazon, LG
GNU arch 2001 Started by Tom Lord in 2001, it later became part of the GNU project. Lord resigned as maintainer in August 2005. available for GNU Savannah and Gna.org projects
IC Manage 2003 Developed by IC Manage, Inc which was founded in 2003 by Shiv Sikand and Dean Drako. many organizations worldwide[83]
PTC Integrity 2003 Originally developed by MKS Software. Purchased by PTC in May 2011[84] Many global engineering and IT organizations[85]
Mercurial 2005 Started April 6, 2005 by Matt Mackall, following the BitKeeper controversy.[79] First released on April 19, 2005 Python,[86] Mozilla, OpenJDK, NetBeans, Xine, Xen, OpenSolaris, wmii, MoinMoin, Linux-HA, Pidgin, Gajim, Nginx, PyPy, SDL, Facebook[87]
Monotone 2003 First released in April 2003 CTWM, Xaraya, I2P,[88] Botan[89][90]
Perforce Helix Core 1993 Developed by Perforce Software, Inc which was founded in 1995 by Christopher Seiwald. FreeBSD,[91] Scania[92]
Rational Team Concert 2008 Version 1.0 released in June, 2008 IBM
Revision Control System 1985 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 Started by Marc Rochkind in 1972 (binary history files, written in Snobol on IBM-370,[93] SCCSv4 with text history files was published February 18, 1977.[94] The same history file format is still used in SCCS 5.0.[95] as the POSIX source-control tool, SCCS is widely available on UNIX platforms, but not included in many Linux distributions. Sun WorkShop TeamWare uses SCCS files.
StarTeam 1995 Version 1.0 1995;[96] Developed by StarBase software, acquired by Borland(which was acquired by Micro Focus). Borland, BT, Cintas, EDS, Kaiser Permanente, Met Office, Quest Software, Raymond James, Siemens, and many more globally distributed companies[97]
Apache Subversion 2000 Started in 2000 by CVS developers with goal of replacing CVS ASF, clang, gcc, SourceForge, FreeBSD, Google Code, KDE (until 2011), PuTTY, Zope, Xiph, GnuPG, CUPS, Apache OpenOffice, TWiki, WebKit, available on CodePlex, and many organizations worldwide[98]
SVK 2003 Authored by Chia-liang Kao with Audrey Tang. First version was on November 19, 2003. 1.00 on May 9, 2005. 2.0.0 on Dec 28th, 2006. SVK became a product of Best Practical on June 5, 2006. Request Tracker
Synergy 1988 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 was renamed Telelogic Synergy. IBM acquired Telelogic in 2008 for integration into their Rational tool suite. The product is now known as IBM Rational Synergy.
Team Foundation Server 2006 First publicly released in March, 2006
Vault 2003 First publicly released in February, 2003 Unknown
Vesta 1991 First publicly released under the LGPL in 2001 DEC Alpha team, Compaq Alpha team, Intel microprocessor development
Visual SourceSafe 1995 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 Unknown
Team Services 2006 Release year 2014
Software History Notable users

See also

Notes

  1. 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.
  2. Various forks of the original Unix sources exist, only one of which is actively maintained
  3. While it is possible for multiple users to edit the same version of a file concurrently, only one of them can write back the changes.
  4. While some forks of SCCS are free software, others remain closed as parts of commercial Unix distributions.
  5. SVK allows Subversion to have Distributed branches.
  6. 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.
  7. Bazaar's critical modules are written in Pyrex. They are automatically translated to pure C; except for the patience sorting module, used in merge resolution, which is written directly in the C language.
  8. A Bazaar bundle is a summary diff, with sufficient extra information to preserve history.
  9. Snapshots with binary files. It's discussed to have binary changesets in future (darcs 3)
  10. 4 MB of which are sqlite3.c
  11. Mercurial revision numbers are local to a repository; they can differ from repository to repository depending on in which order merges are performed.
  12. 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.
  13. Veracity revision numbers are local to a repository; they can differ from repository to repository depending on in which order merges are performed.
  14. Evil twins are common.Evil Twins in SCM, Not Hollywood
  15. Atomic commit can be enabled for individual checkin's ClearCase 7.1.1 release notes.
  16. See FAQ
  17. darcs' patches each bear a unique identifier, impossible to merge twice the same patch in a repository (without destructively modifying history using "unsafe" commands).
  18. Although it stores (and shows by default) 8-bit filename. See FAQ
  19. Using Item Revision Attributes ("Working with Items" demo, covering user define attributes ).
  20. In the sense that its messages and graphic interfaces have English only localization, though the software is certified running fine on various language operating systems.
  21. Controlled by the 'crnl-glob' setting ([1])
  22. Git does not explicitly track renames, because by design it does not track individual files. Renames and split of source files are detected after the fact, if the file content does not change dramatically.
  23. Since git-1.7.9 (see release notes ). Older versions do not sign commits, only tags (see the -s option in git-tag(1) Manual page)
  24. UTF-8 filenames are supported as of version 1.7.10 (MSysGit release notes).
  25. Git has some issues with very large repositories. See Section Better big-file support and Section Designing a faster index format in SoC 2012 Ideas.
  26. Integrity enabled change packages provide complete workflow and 21 CFR Part 11 compliant digital signatures against the item controlling the change package.
  27. 2009 SP5 added a feature to merge child development paths.
  28. Mercurial includes internationalization for more than 10 languages as of 2017.
  29. Support depends upon host OS and is well supported under Unix, but not Windows OSs, due to lack of host support. See [2]
  30. It could be done via user level hooks
  31. Perforce will version-control symbolic links themselves, but will not recognise its own version-controlled views (local file trees), if you access them via symbolic links.
  32. Through the process behaviour components: Operation advisors and Operation participants. http://jazz.net/library/article/292
  33. While the source code of SCCS has been written to support internationalisation, only English message texts exist.
  34. StarTeam supports atomic commits as of version 2006
  35. 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.
  36. Since SVN 1.8 subversion supports improved move-tracking on the client side. On the server-side it's not supported yet.
  37. "Changeset Signing". Apache Subversion Mailing Lists. http://svn.haxx.se/dev/archive-2015-06/0052.shtml. Retrieved 2016-08-05. 
  38. New to SVN 1.5 <http://subversion.apache.org/docs/release-notes/1.5.html#merge-tracking>. A separate tool "svnmerge" <https://cracktower.blogspot.com/ > provides merge tracking for older versions.
  39. 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 http://svnbook.red-bean.com/nightly/en/svn.branchmerge.tags.html 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.
  40. Uses subversion server
  41. in Asian releases (v6.6a to v7.1a) and since version 7.2 in general
  42. Version change history is removed upon rename; old name not referenced.
  43. not implemented yet
  44. Can not be disabled in dynamic views.
  45. Using alias of the CVSROOT/modules file.
  46. CVS records executable bit when a file is added, but does not allow changing it later on.
  47. This is a GUI feature supported by TortoiseCVS and WinCVS both of which include/use CVSNT.
  48. Same as CVS, plus also the ability to have replicated repositories including 'shadow' repositories.
  49. Use the module/directory name or an alias created using CVSROOT/modules or CVSROOT/modules2 administration file.
  50. CVSNT supports this when the make/build tool used also supports it.
  51. Darcs can do sparse checkouts from explicit checkpoints on darcs-1 repositories, but not from darcs-2 ones
  52. Darcs can automatically detect #! scripts and make them executable on checkout.
  53. Using Sub Project functionality (Documentation Portfolio | User's Guide | Relating a Project or Stream to Other Objects).
  54. Checkouts can be nested with "fossil open --nested"
  55. The Git FAQ states that keyword expansion is not a good thing
  56. add -i and add -p, see git-add(1) Manual Page
  57. The Git FAQ explains why preserving modification time is considered harmful
  58. Configurable on server as a Project Option and on the client as a User Option.
  59. commit --interactive, see SVK::Command::Commit
  60. Through third-party tools such as Tortoise SVN.
  61. SVN can not preserve file modification times. On request by the client, it can restore check-in time as last-modified time. Disabled by default.
  62. MIME type of the file must be detected as a "human-readable" MIME type, even if the merge tool can work with non-human-readable files
  63. Standalone Branch, http://wiki.bazaar.canonical.com/StandaloneBranch 
  64. Shared Repository, http://wiki.bazaar.canonical.com/SharedRepository 
  65. Standalone Branch, http://wiki.bazaar.canonical.com/StandaloneBranch 
  66. Heavyweight Checkout and Lightweight Checkout, http://wiki.bazaar.canonical.com/Checkout 
  67. rebase plugin
  68. darcs doesn't have named branches, local or not, branching is handled solely through repository cloning
  69. darcs send prepares a bundle of patches, defaults to sending it by mail but can send it to a file instead
  70. copies are detected after the fact, much like renames
  71. Mercurial Bookmarks are similar to local branches.
  72. Through any of various means, place (to-be-immutable) file in an immutable directory prior to vcheckin.
  73. mv(1) or link(2) the immutable file from its origin immutable directory to its destination immutable directory prior to vcheckin.
  74. Through any of various means, copy the immutable file from its origin immutable directory to its destination immutable directory prior to vcheckin.
  75. One can also enable this as a central preference in the repository server control panel or configuration file.
  76. Requires administrator privileges. One can 'roll back' a change using 'cvs update –e –j @commitid –j "@<commitid"' but the change and rollback evidence remain in the history.
  77. yes – use TortoiseCVS or WinCVS to commit the change to the destination and select which specific files to keep
  78. bisect is also available for cvs which should work with CVSNT
  79. darcs operate on patches not revision, cherrypicking simply consists in pulling a given patch from one repository to another one as long as the dependencies are fulfilled
  80. fossil stash supports multiple shelves with comments.
  81. git stash is a multi-level shelve, it's possible to shelve several change groups at the same time
  82. Only works on a local repository and only on revisions without children. The disapprove command might be an alternative.
  83. svk status lists differences between working copy and repository, not differences between two repositories
  84. experimental in SVN 1.10 (release notes)
  85. SVN Bisect tool svn-bisect
  86. svn status lists differences between working copy and repository, not differences between two repositories
  87. locks are advisory, and can't be enforced on disconnected instances
  88. hgweb for single-repository access and hgwebdir for multiple repository access from a single HTTP address

References

  1. "CVS team member list", Non-GNU Savannah, The GNU Project, http://savannah.nongnu.org/project/memberlist.php?detailed=1&group=cvs 
  2. CVS Pro, March Hare, http://march-hare.com/cvspro/ 
  3. Computer Associates, http://www.ca.com/ 
  4. "How To Buy". https://www.perforce.com/how-buy. Retrieved 2018-01-18. 
  5. Licesing and pricing, PlasticSCM, http://www.plasticscm.com/buy.aspx 
  6. Apache Software Foundation, http://www.apache.org/ 
  7. Rational Synergy, IBM, http://www.ibm.com/software/awdtools/synergy 
  8. Vesta Configuration Management System, Sourceforge, http://sourceforge.net/projects/vesta 
  9. Vesta Configuration Management System, Vesta, http://www.vestasys.org 
  10. IBM – Rational ClearCase – United States, http://www-03.ibm.com/software/products/en/clearcase 
  11. "Changesets". March Hare Software Ltd.. http://march-hare.com/cvsnt/features/changesets/. Retrieved 8 May 2012. 
  12. Fossil Technical Overview, http://fossil-scm.org/index.html/doc/trunk/www/tech_overview.wiki 
  13. Fossil Hash Policy, http://fossil-scm.org/index.html/doc/trunk/www/hashpolicy.wiki 
  14. Git Server Protocol, http://www.samba.org/~jelmer/dulwich/docs/protocol.html 
  15. https://github.com/git/git
  16. "Archived copy". Archived from the original on 2011-11-13. https://web.archive.org/web/20111113040629/http://www.accurev.com/download/docs/5.3.0_books/AccuRev_5_3_0_Install_Release_Notes.pdf. Retrieved 2012-01-12. 
  17. "SCM News – Kronos Turns to AccuRev for Software Configuration Management". AccuRev. 2004-04-26. Archived from the original on 2014-02-02. https://web.archive.org/web/20140202091954/http://www.accurev.com/press-releases/20040426-AccuRev-Kronos.html. Retrieved 2014-01-26. 
  18. "Enhanced Performance and Scalability for Cross-Platform Geographically Distributed Teams". AccuRev. 2008-09-23. Archived from the original on 2014-02-02. https://web.archive.org/web/20140202092247/http://www.accurev.com/press-releases/092308-avid-selects-accurev.html. Retrieved 2014-01-26. 
  19. "EOL conversions are supported since bzr 1.14". Doc.bazaar-vcs.org. http://doc.bazaar-vcs.org/bzr.1.14/en/release-notes/NEWS.html#bzr-1-14. Retrieved 2014-01-26. 
  20. Support Policy for National Languages and ClearCase from IBM Support
  21. With the Largefiles Extension in core since Hg Rev.:2.0 (2011), the remotefilelog extension (2014), the fsmonitor extension in core since Hg Rev.:3.8 (2016) and the experimental sparse extension in core since Hg Rev.:4.3 (2017).
  22. [3] from the Perforce User's Guide
  23. [4] from the Perforce User's Guide
  24. "Perforce Public Knowledge Base – Home". Perforce.com. http://www.perforce.com/perforce/technotes/note009.html. Retrieved 2014-01-26. 
  25. "Perforce Knowledge Base: Internationalization and Localization". Kb.perforce.com. 2010-10-21. http://kb.perforce.com/?article=66. Retrieved 2014-01-26. 
  26. "Perforce Knowledge Base: Internationalization and Localization". Kb.perforce.com. 2010-10-21. http://kb.perforce.com/article/66/internationalization-and-localization#i18n. Retrieved 2014-01-26. 
  27. [5] – Seapine Software Releases Surround SCM 2009
  28. Signature – SVK Wiki
  29. "GitCentric | AccuRevGit for the Enterprise". Accurev.com. Archived from the original on 2012-10-17. https://web.archive.org/web/20121017043025/http://www.accurev.com/kando. Retrieved 2014-01-26. 
  30. "Bazaar keywords plugin". Wiki.bazaar.canonical.com. 2005-09-05. http://wiki.bazaar.canonical.com/KeywordExpansion. Retrieved 2014-01-26. 
  31. "Bazaar interactive plugin". Launchpad.net. https://launchpad.net/bzr-interactive. Retrieved 2014-01-26. 
  32. "Bazaar Externals plugin". Launchpad.net. http://launchpad.net/bzr-externals. Retrieved 2014-01-26. 
  33. "Ignore merge operation for given extension". https://answers.launchpad.net/bzr/+question/103163. 
  34. "bzr-svn". Launchpad.net. http://launchpad.net/bzr-svn. Retrieved 2014-01-26. 
  35. "bzr-git". Launchpad.net. http://launchpad.net/bzr-git. Retrieved 2014-01-26. 
  36. "bzr-hg". Launchpad.net. http://launchpad.net/bzr-hg. Retrieved 2014-01-26. 
  37. IBM Rational ClearCase: The ten best triggers from IBM DeveloperWorks
  38. The manifest, Fossil file formats
  39. "Fossil import and export". Fossil-scm.org. 2014-01-22. http://www.fossil-scm.org/index.html/doc/trunk/www/inout.wiki. Retrieved 2014-01-26. 
  40. "git-submodule(1) Manual Page". Kernel.org. 2013-02-15. http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html. Retrieved 2014-01-26. 
  41. "git-read-tree(1) Manual Page". kernel.org. 2014-08-24. http://git-scm.com/docs/git-read-tree#_sparse_checkout. Retrieved 2014-10-24. 
  42. "Mercurial KeywordExtension page". Mercurial-scm.org. https://www.mercurial-scm.org/wiki/KeywordExtension. Retrieved 2014-01-26. 
  43. "Mercurial RecordExtension page". Mercurial-scm.org. 2013-08-27. https://www.mercurial-scm.org/wiki/RecordExtension. Retrieved 2014-01-26. 
  44. "Subrepository – Mercurial". Mercurial-scm.org. https://www.mercurial-scm.org/wiki/Subrepository?action=show&redirect=Subrepositories. Retrieved 2016-04-22. 
  45. With the sparse extension included in core since Hg Rev.:4.3.
  46. "Mercurial Timestamp Extension". Mercurial-scm.org. 2012-04-24. https://www.mercurial-scm.org/wiki/TimestampExtension. Retrieved 2014-01-26. 
  47. "Merge Tool Configuration". Mercurial-scm.org. 2017-03-14. https://www.mercurial-scm.org/wiki/MergeToolConfiguration. Retrieved 2017-09-05. 
  48. "hgsubversion page". Mercurial-scm.org. 2013-08-28. https://www.mercurial-scm.org/wiki/HgSubversion. Retrieved 2014-01-26. 
  49. "Hg-Git Mercurial Plugin". Hg-git.github.com. https://hg-git.github.com/. Retrieved 2014-01-26. 
  50. "Mercurial ConvertExtension page". Mercurial-scm.org. 2013-11-29. https://www.mercurial-scm.org/wiki/ConvertExtension. Retrieved 2014-01-26. 
  51. 51.0 51.1 51.2 "P4 User's Guide". Perforce. https://www.perforce.com/perforce/doc.current/manuals/p4guide/. Retrieved 19 January 2018. 
  52. "Keyword Substitution". Svnbook.red-bean.com. http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html. Retrieved 2014-01-26. 
  53. "Externals Definitions". Svnbook.red-bean.com. http://svnbook.red-bean.com/en/1.0/ch07s03.html. Retrieved 2014-01-26. 
  54. 54.0 54.1 darcs's default pull command is interactive, allowing the user to choose which patches to apply (merge) in realtime
  55. "Mercurial Rebase Extension". Mercurial-scm.org. 2012-10-25. https://www.mercurial-scm.org/wiki/RebaseExtension. Retrieved 2014-04-23. 
  56. "bug 6463 – enh: search repository". http://customer.march-hare.com/webtools/bugzilla/ttshow_bug.cgi?id=6463&tt=1. Retrieved 8 May 2012. 
  57. "Mercurial Shelve extension page". Mercurial-scm.org. 2013-11-07. https://www.mercurial-scm.org/wiki/ShelveExtension. Retrieved 2014-01-26. 
  58. "Mercurial Strip extension page". Mercurial-scm.org. https://www.mercurial-scm.org/wiki/StripExtension. Retrieved 11 May 2016. 
  59. "graft -core command (since Hg Rev.2.0)". Selenic.com. http://www.selenic.com/mercurial/hg.1.html#graft. Retrieved 2014-01-26. 
  60. "Mercurial Transplant extension page". Mercurial-scm.org. 2012-05-12. https://www.mercurial-scm.org/wiki/TransplantExtension. Retrieved 2014-01-26. 
  61. "Mercurial Record extension page". Mercurial-scm.org. 2013-08-27. https://www.mercurial-scm.org/wiki/RecordExtension. Retrieved 2014-01-26. 
  62. "The Perforce Broker". Perforce.com. http://www.perforce.com/perforce/r10.2/manuals/p4sag/11_broker.html. Retrieved 2014-01-26. 
  63. "Perforce Knowledge Base: "Cherry Picking" Integrations". Kb.perforce.com. 1990-01-01. http://kb.perforce.com/article/567/. Retrieved 2014-01-26. 
  64. "Supported Integrations — PTC Integrity". Mks.com. 2012-09-10. Archived from the original on 2012-07-25. https://web.archive.org/web/20120725110643/http://www.mks.com/customer-service/supported-versions-platforms-integrations/supported-integrations. Retrieved 2014-01-26. 
  65. La Chose : web agency and software maker – agence web et développement de logiciels
  66. "When SCM meets Web 2.0 – Cool Widget at Orbitz | Software Configuration Management and Agile Software Development". Accurev.com. Archived from the original on 2014-02-02. https://web.archive.org/web/20140202000408/http://accurev.com/blog/2008/04/17/when-scm-meets-web-20-cool-widget-at-orbitz/. Retrieved 2014-01-26. 
  67. "McAfee Web Services Team Saves $500,000 per Year by Adopting". AccuRev. Archived from the original on 2014-02-02. https://web.archive.org/web/20140202092131/http://www.accurev.com/accurev-mcafee-success-story.html. Retrieved 2014-01-26. 
  68. "SanDisk Gains a Competitive Advantage Using AccuRev SCM Software". AccuRev. Archived from the original on 2014-02-02. https://web.archive.org/web/20140202091934/http://www.accurev.com/accurev_sandisk_scm_solution.htm. Retrieved 2014-01-26. 
  69. "Symantec Achieves Significant Gains by Moving to". AccuRev. Archived from the original on 2014-02-02. https://web.archive.org/web/20140202091758/http://www.accurev.com/accurev-symantec-scm-solution.html. Retrieved 2014-01-26. 
  70. "Webinar – How Verizon Wireless Overcame Obstacles to Deliver Software More Quickly". Accurev.com. 2011-06-01. Archived from the original on 2012-11-20. https://web.archive.org/web/20121120173624/http://www.accurev.com/virtualbooth/20110525-verizon-wireless/Verizon052011swf.html. Retrieved 2014-01-26. 
  71. "WhoUsesBzr - wiki.bazaar.canonical.com". Bazaar-vcs.org. 2005-09-21. http://bazaar-vcs.org/WhoUsesBzr. Retrieved 2014-01-26. 
  72. "The Scalable Distributed Software Configuration Management System". BitKeeper. http://www.bitkeeper.com/Customers.html. Retrieved 2014-01-26. 
  73. "Distributed Source Control System". Portal.acm.org. 1997-05-18. http://portal.acm.org/citation.cfm?id=716428&dl=ACM&coll=portal. Retrieved 2014-01-26. 
  74. "How to Set up a Source Control on Windows without spending a dime.". AnandTech. http://www.anandtech.com/print/1578. Retrieved 8 May 2012. 
  75. "Combining a tag which contains all files with a tag which only contains a subset". http://www.cvsnt.org/pipermail/cvsnt/2007-August/029459.html. Retrieved 8 May 2012. 
  76. "Can no no longer connect to CVSNT from unix clients". http://www.cvsnt.org/pipermail/cvsnt/2007-September/029581.html. 
  77. "gserver client errors". http://www.cvsnt.org/pipermail/cvsnt/2009-June/032250.html. Retrieved 8 May 2012. 
  78. Serena Software Customers.
  79. 79.0 79.1 Towards A Better SCM: Revlogs and Mercurial, presented by Matt Mackall to the Ottawa Linux Symposium, July 2006
  80. "Getting and Working With the Perl Source". dev.perl.org. http://dev.perl.org/perl5/source.html. Retrieved 2014-01-26. 
  81. "Git". MediaWiki. http://www.mediawiki.org/wiki/Git. Retrieved 1 August 2012. 
  82. "The largest Git repo on the planet". May 24, 2017. https://blogs.msdn.microsoft.com/bharry/2017/05/24/the-largest-git-repo-on-the-planet/. 
  83. IC Manage: Industrial Strength Data Management
  84. "PTC Sets New Standard for Managing Hardware and Software Development Lifecycles with MKS Integrity Acquisition — PTC Integrity". Mks.com. Archived from the original on 2017-08-11. https://web.archive.org/web/20170811000000/http://www.mks.com/about-MKS/press/press-releases/ptc-sets-new-standard-for-managing-hardware-and-software-development-lifecycles-with-mks-integrity-acquisition. Retrieved 2014-01-26. 
  85. "Customers — PTC Integrity". Mks.com. Archived from the original on 2017-08-11. https://web.archive.org/web/20170811000000/http://www.mks.com/customers. Retrieved 2014-01-26. 
  86. "transition ongoing". Python.org. https://www.python.org/dev/peps/pep-0374/#decision. Retrieved 2014-01-26. 
  87. "Facebook for Developers (video of presentation)". Facebook.com. 2015-03-27. https://www.facebook.com/FacebookforDevelopers/videos/10152800517193553/. Retrieved 2017-09-05. 
  88. "Getting the I2P code". https://geti2p.net/en/get-involved/guides/new-developers#getting-the-i2p-code. Retrieved 2014-07-03. 
  89. "Accessing Version Control". 2014-05-26. Archived from the original on 2014-07-14. https://web.archive.org/web/20140714124803/http://botan.randombit.net/vcs.html. Retrieved 2014-07-03. 
  90. "ProjectsUsingMonotone". 2011-02-06. http://wiki.monotone.ca/ProjectsUsingMonotone/. Retrieved 2014-07-03. 
  91. "Interactions Between FreeBSD Subversion and Perforce". https://www.freebsd.org/doc/en_US.ISO8859-1/articles/p4-primer/freebsd-cvs-and-p4.html. Retrieved 2018-01-26. 
  92. "Scania: Adopting DevOps for Auto Production". 2016-06-28. https://devops.com/scania-adopting-devops-auto-production/. Retrieved 2018-01-26. 
  93. Rochkind, Marc J. (December 1975), "The Source Code Control System", IEEE Transactions on Software Engineering SE-1 (4): 364–370, doi:10.1109/tse.1975.6312866, http://basepath.com/aup/talks/SCCS-Slideshow.pdf 
  94. http://minnie.tuhs.org/cgi-bin/utree.pl?file=PWB1/usr/news/pibs PWB UNIX product announcement
  95. Compare the SCCS 4 file format with the SCCS 5.0 file format (as manpage sccsfile(4) in "Archived copy". Archived from the original on 2014-08-19. https://web.archive.org/web/20140819084236/http://dlc.sun.com/osol/man/downloads/20070320/man-sunosman-20070320.tar.bz2. Retrieved 2014-08-17. 
  96. Starteam®
  97. Customer Profiles
  98. "Archived copy". Archived from the original on 2006-06-13. https://web.archive.org/web/20060613050431/http://subversion.tigris.org/testimonials.html. Retrieved 2006-05-30.