Comparison of version-control software

Last updated

The following tables describe attributes of notable version control and software configuration management (SCM) software systems that can be used to compare and contrast the various systems.

Contents

For SCM software not suitable for source code, see Comparison of open-source configuration management software.

General information

The following table contains relatively general attributes of version-control software systems, including:

SoftwareMaintainerDevelopment statusRepository modelConcurrency model License Supported platformsFinancial cost
AccuRev SCM Micro Focus InternationalActive Client–server Merge or lock Proprietary Most Java Platforms (Unix-like, Windows, macOS)$350 per seat, quoted on an individual basis.
Azure DevOps Microsoft Active Client–server, Distributed Merge or lock Proprietary Windows, cross-platform via Azure DevOps Services Free for up to 5 users in the Azure DevOps Services or for open source projects; else at cost, licensed through MSDN subscription or direct buy.
GNU Bazaar Canonical Ltd. last release from 2016, forked as Breezy Distributed and Client–server Merge GPL-2.0-or-later Unix-like, Windows, macOS Free
BitKeeper BitMover Inc.unmaintained; last updated December 29, 2018 Distributed Merge Apache-2.0 Unix-like, Windows, macOS Free
IBM DevOps Code ClearCase IBM Rational Active Client–server Merge or lock [nb 1] Proprietary Linux, Windows, AIX, Solaris, HP UX, IBM i, OS/390, z/OS,$4600 per floating license (held automatically for 30 minutes minimum per user, can be surrendered manually)
Code Co-op Reliable SoftwareActive Distributed Merge MIT Windows $150 per seat
CVS The CVS Team [1] maintained but new features not added; last release from 2008 Client–server Merge GPL-1.0-or-later Unix-like, Windows, macOS Free
CVSNT March Hare Software [2] and community membersActive Client–server Merge or lock GPL or proprietary Unix-like, Windows, macOS, IBM i £425 distribution fee for older version or £85 commercial license for latest version of CVS Suite or Change Management Server
darcs The Darcs teamActive Distributed Merge GPL-2.0-or-later Unix-like, Windows, macOS Free
Dat The Dat teamActive Distributed Merge BSD-3-Clause Unix-like, Windows, macOS Free
Dimensions CM Serena Software Active Client–server Merge or lock Proprietary Windows, Linux, Solaris, AIX, HP UX, z/OS Paid
Fossil D. Richard Hipp Active Distributed Merge BSD-2-Clause POSIX, Windows, macOS, OtherFree
Git Junio Hamano Active Distributed Merge GPL-2.0-only POSIX, Windows, macOS Free
GNU arch Andy Taiunmaintained Distributed Merge GPL Unix-like, Windows, macOS Free
IC Manage IC Manage Inc.Active Client–server Merge or lock Proprietary Unix-like, Windows, macOS Paid
PTC Integrity PTCActive Client–server Merge or lock Proprietary Unix-like, Windows Paid
Mercurial Mercurial Community Active Distributed Merge GPL-2.0-or-later Unix-like, Windows, macOS Free
Monotone Nathaniel Smith, Graydon HoareActive Distributed Merge GPL-2.0-or-later Unix-like, Windows, macOS Free
Perforce Helix Core Perforce Software Inc. Active Client–server and Distributed Merge or lock Proprietary Unix-like, Windows, macOS Available as perpetual license and subscriptions; prices vary based on configurations and options [3]
Plastic SCM Codice SoftwareActive Client–server and Distributed Merge or lock Proprietary Linux, Windows, macOS Free for up to 3 users, else starting at $7 per user per month for server-hosted, or $23 per user per month for on-premises edition. No perpetual licenses. [4]
PVCS Serena Software Active Client–server Lock Proprietary Windows, Unix-like Paid
Rational Team Concert IBM Rational Active Client–server [nb 2] [5] [6] Merge or lock Proprietary Linux, Windows, AIX, Solaris, HP UX, IBM i, OS/390, z/OS, macOS Free for up to 10 users, else paid
Revision Control System Thien-Thi NguyenActivelocalMerge or lock GPL-3.0-or-later Unix-like Free
Source Code Control System (SCCS) Jörg Schilling [nb 3] Activelocallock [nb 4] CDDL – proprietary [nb 5] Unix-like, macOS Free CDDL-licensed versions or paid in some UNIX distributions.
StarTeam Borland (Micro Focus)Active Client–server Merge or lock Proprietary Windows and Cross-platform via Java based clientPaid
Subversion (SVN) Apache Software Foundation [7] Active Client–server Merge or lock [nb 6] Apache-2.0 Unix-like, Windows, macOS Free
Surround SCM Perforce Software Inc. Active Client–server Merge or lock Proprietary Linux, Windows, macOS $595 per user; $29/month subscription
Synergy IBM Rational Active Client–server and Distributed Merge or lock Proprietary Linux, Windows, Unix-like Paid [8]
Vault SourceGear LLCActive Client–server Merge or lock Proprietary Unix-like, Linux, Windows $300 per user
Vesta Kenneth Schalk; Tim Mann, [9] [10] web site not updated since 2006; latest release February 15, 2009 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 onlyShared FolderMerge or lock Proprietary Windows $500 per license approximately, or single license included with each MSDN subscription.
SoftwareMaintainerDevelopment statusRepository modelConcurrency model License Supported platformsFinancial cost

Technical information

The subsequent table shows technical details of some well-known version-control software. These are classified based on following headers:

Table explanation

Software Programming language Storage methodScope of change Revision IDs Network protocols Source code size
AccuRev SCM C++, Java ChangesetFileNumber pair NN/NNcustomUn­known
Azure DevOps C++ and C# ChangesetFile and TreeNumbersSOAP over HTTP or HTTPS, Ssh Un­known
GNU Bazaar Python 2, Pyrex (optional), C [nb 7] SnapshotTreePseudorandomcustom, custom over ssh, custom over HTTP, HTTP, SFTP, FTP, email bundles, [nb 8] WebDAV (with plugin)4.1 MB
BitKeeper C ChangesetTreeChangeset keys, numberscustom, HTTP, rsh, ssh, email99 MB
CA Software Change Manager C, C++, Java, HTMLChangeset and SnapshotFile and Tree[ citation needed ]Numbers HTTP, TCP/IPUn­known
IBM DevOps Code ClearCase C, Java, Perl ChangesetFile and Tree [11] Numberscustom (CCFS), custom (MVFS filesystem driver), HTTP Un­known
Code Co-op C++ ChangesetUn­knownUser ID-Ordinale-mail (MAPI, SMTP/POP3, Gmail), LAN Un­known
CVS C ChangesetFileNumberspserver, ssh 10.3 MB
CVSNT C++ ChangesetFile and Tree [12] Numberscustom over ssh, sspi, sserver, gserver, pserver55 MB
darcs Haskell Changeset (Patch) [nb 9] Treen/acustom over ssh, HTTP, email1.7 MB
Dimensions CM C, C++, Java, C# Snapshot or changesetFile and TreeNumbersCustom, HTTP/HTTPS Un­known
Fossil C Snapshot or changeset [13] Tree SHA-1 or SHA-3 hashes [14] HTTP/HTTPS, custom over ssh 7.2 MB [nb 10]
Git C, shell scripts, Perl SnapshotTree SHA-1 hashescustom (git), custom over ssh, [15] HTTP/HTTPS, rsync, email, bundles23 MB [16]
GNU arch C, shell scripts ChangesetTreeNumbers HTTP, WebDAV Un­known
IC Manage C++, C ChangesetUn­knownNumberscustomUn­known
Mercurial Python, C ChangesetTreeNumbers, [nb 11] SHA-1 hashescustom over ssh, HTTP, email bundles (with standard plugin)20 MB
MKS Integrity C, Java ChangesetFileNumberscustom, HTTP Un­known
Monotone C++ Hybrid [nb 12] Tree SHA-1 hashescustom (netsync), custom over ssh, file system4.4 MB
Perforce Helix Core C++, C ChangesetTreeNumberscustomUn­known
PVCS C++, C ChangesetFileNumbersUn­knownUn­known
Rational Team Concert Java ChangesetTreeNumbers REST services over HTTP/HTTPS Un­known
Revision Control System C ChangesetFileNumbersFile system5.3 MB
Source Code Control System C ChangesetFileNumbers NFS 1.3 MB
StarTeam C++, C, Java SnapshotFile and Tree MD5 hashescustom, TCP/IPUn­known
Subversion C Changeset and SnapshotTreeNumberscustom (svn), custom over ssh, HTTP and SSL (using WebDAV)41 MB
Surround SCM C++ ChangesetFile and TreeNumbersTCP/IPUn­known
Synergy Java Changeset (text), Snapshot(binary)FileNumberscustom, custom over ssh, HTTP Un­known
Vault C# ChangesetFile and TreeNumbers HTTP, HTTPS Un­known
Vesta C++ SnapshotTreeUn­known NFS 15.8 MB
Visual SourceSafe C SnapshotFileNumbers SMB, DCOM Un­known
Software Programming language Storage methodScope of changeRevision IDsNetwork protocolsSource code size

Features


The following table classifies some well-known software on the basis of its features and capabilities.

Table explanation

Software Atomic commits File renamesMerge file renames Symbolic links Pre-/post-event hooks Signed revisionsMerge tracking End of line conversions Tags International supportUnicode filename supportSupports large repos
AccuRev SCM YesYesPartial [nb 13] YesYesYesYesYesYesYes [17] Yes [18] [19]
Azure DevOps YesYesYesYesYesNoYesYesYesYesYesYes
GNU Bazaar YesYesYesYesYesYesYesYes [20] YesYesYesUn­known
BitKeeper YesYesYesYesYesUn­knownYesYesYesUn­knownUn­knownYes
CA Software Change Manager YesYesYesYesYesYesYesYesYesYesYesUn­known
IBM DevOps Code ClearCase Partial [nb 14] YesYesYesYesYesYesYesYesYes [21] Un­knownYes
Code Co-op YesYesYesNoPartialNoNoNoYesUn­knownUn­knownUn­known
CVS NoNoNoNoPartialNoNoYesYesUn­knownNoYes
CVSNT YesYesYesYesYesNoYesYesYesYesYesYes
darcs YesYesYesNo [nb 15] YesYes [nb 16] NoYesNoYes [nb 17] Un­known
Dimensions CM YesYesYesNoYesUn­knownYesYesYes [nb 18] No [nb 19] YesYes
Fossil YesYesYesYesYes [22] YesYesYes [nb 20] YesYesYesYes [23]
Git YesPartial [nb 21] YesYesYesYes [nb 22] YesYesYesYesYes [nb 23] Partial [nb 24]
GNU arch YesYesUn­knownYesYesYesUn­knownUn­knownYesUn­knownUn­knownUn­known
IC Manage YesYesNoYesYesYesYesYesYesYesUn­knownUn­known
MKS Integrity YesYesYesNoYesYes [nb 25] Yes [nb 26] YesYesYesYesUn­known
Mercurial YesYesYesYesYesYesYesYesYesYes [nb 27] Partial [nb 28] Yes [24]
Monotone YesYesYesNo [nb 29] YesYes, mandatoryYesYesYesUn­knownYesUn­known
Perforce Helix Core YesYes [25] Yes [26] Partial [nb 30] YesNoYes [27] YesYesYes [28] Yes [29] Yes
Rational Team Concert YesYesYesYesYes [nb 31] YesYesYesYesYesYesUn­known
Source Code Control System YesNoNoNoYesNoNoPartial [nb 32] YesYes
StarTeam Yes [nb 33] YesUn­knownYesNoNoYesYesYesYesUn­knownYes
Subversion YesYes [nb 34] Partial [nb 35] YesYesNo [nb 36] Yes. [nb 37] YesPartial [nb 38] YesYesYes
Surround SCM YesYesYesYesYesYesYesYesYes [30] YesYesYes
Synergy YesYesYesYesYesYesYesYesYesYesYes [nb 39] Yes
Vault YesYesYesNoYesNoNoYesYesUn­knownUn­knownUn­known
Vesta YesYesUn­knownUn­knownYesNoNoNoYesNoUn­knownYes
Visual SourceSafe NoNo [nb 40] Un­knownNoYesNoNoUn­knownYesYesUn­knownUn­known
Software Atomic commits File renamesMerge file renames Symbolic links Pre-/post-event hooks Signed revisionsMerge tracking End of line conversions Tags International supportUnicode filename supportSupports large repos

Advanced features

The following are few more advanced features and capabilities few version-control softwares:

Table explanation

SoftwareKeyword expansionInteractive commitsExternal referencesPartial checkout/clonePermissionsTimestamp preservationCustom automatic merge toolSupported formatsShared build cache of derived objects
AccuRev SCM YesUn­knownYesYesexecution bit onlyYesYesgit (bi-dir) [31] No
Azure DevOps NoYesUn­knownYesYesUn­knownYesUn­knownUn­known
GNU Bazaar Yes [32] Yes [33] Yes [34] Noexecution bit onlyNo [nb 41] Yes [35] bzr, subversion, [36] git, [37] hg, [38] any that has a fastexporterNo
BitKeeper POSIX and RCS YesYesYesYesYesYesbitkeeperNo
CA Software Change Manager NoYesNoYesexecution bit onlyYesYesCA Software Change ManagerNo
IBM DevOps Code ClearCase Yes [39] NoNoYesYesYes [nb 42] YesClearCaseYes
CVS RCS NoYesYes [nb 43] Partial [nb 44] YesNocvsNo
CVSNT RCS Yes [nb 45] Yes [nb 46] Yes [nb 47] YesYesNocvsYes [nb 48]
darcs NoYesNoNo [nb 49] Partial [nb 50] Noconflicts onlydarcsNo
Dimensions CM YesNoYes [nb 51] YesYesYesYesMigration from ClearCase, Subversion, CVS, PVCS, ChangeMan DSUn­known
Fossil NoYesYes [nb 52] Noexecution bit only [40] NoNofossil (uses sqlite), any that has a fastexporter; [41] migration from git and svn [42] No
Git No [nb 53] Yes [nb 54] Yes [43] Yes [44] execution bit onlyNo [nb 55] Yesgit, cvs, subversion, hg, any that has a fastexporterNo
Mercurial Yes [45] Yes [46] Yes [47] Yes [48] execution bit onlythrough (alpha) extension [49] Yes [50] hg, subversion, [51] lossless two-way push to and pull from git, [52] migration from any other format supported by the Convert extension: [53] CVS, Darcs, Bazaar, Monotone, GNU Arch, and Perforce [54] No
Perforce Helix Core Yes [55] NoNoYesYesYes [55] Yes [55] PerforceNo
Rational Team Concert NoYesYesYesYesUn­knownYesN/ANo
Source Code Control System YesNoYesexecution bit onlysome variants[ citation needed ]NosccsNo
Surround SCM YesNoNoYesNoYesYes [nb 56] SurroundNo
Subversion Yes [56] Partial [nb 57] Yes [57] Yesexecution bit onlyPartial [nb 58] Yes [nb 59] subversionNo
Vesta NoNoYes via SDLNoUn­knownYesNoVestaYes
Visual SourceSafe YesUn­knownUn­knownYesYesUn­knownYesUn­knownNo
SoftwareKeyword expansionInteractive commitsExternal referencesPartial checkout/clonePermissionsTimestamp preservationCustom automatic merge toolSupported formatsShared build cache of derived objects

Basic commands

This table gives further insights about commands provided in the version-control softwares.

Table explanation

SoftwareRepository initclonepullpushLocal branchescheckoutupdatelockaddremovemovecopymergecommitrevertgenerate bundle filerebase
AccuRev SCM mkdepotN/AN/AN/Amkstreammkwsupdateanchoradddefunctmovecp [then] add – incl -s – lnmergekeep – promotepurge – revertN/Achstream
Azure DevOps using Git clone using Git getcommitshelvesetcheckoutgetlockadddeleterenameusing Git mergecommitundousing Git get
GNU Bazaar init – init –no-tree [nb 60] – init-repo – init-repo –no-trees [nb 61] branch – branch –no-tree [nb 62] pullpushinit – branchcheckout – checkout –lightweight [nb 63] updateN/AaddrmmvN/Amergecommitrevertsendrebase [nb 64]
BitKeeper setupclonepull -RpushclonecopullUn­knownaddrmmvcppullcommitundomakepatchcollapse
IBM DevOps Code ClearCase initN/AN/AN/AN/Acheckoutupdatelock – unlockmkelemrmnamemvN/Amergecheckinuncheckout – rmverN/Afindmerge
CVS initN/AN/AN/AN/AcheckoutupdateUn­knownaddrmN/AN/Aupdate -jcommitremove [then] updateN/AN/A
CVSNT initN/AN/AN/AN/AcheckoutupdateeditaddrmrenameN/Aupdate -jcommitupdate -CN/AN/A
darcs initclonepull [58] pushN/A [nb 65] clonepull [58] Un­knownaddremovemoveN/Apull – pushrecordrevertsend -o [nb 66] rebase
Fossil new – openclonepullpushbranch – commit –branchclone/openupdateN/Aaddrm/delmv/renameN/AmergecommitrevertFossil's repository is single sqlite file itselfN/A
Git init – init –bareclone – clone –barefetchpushbranchcheckoutpullN/Aaddrmmvcp [then] git add [nb 67] mergecommitreset –hardbundlerebase
Mercurial initclonepullpushbookmark [nb 68] update – up – checkout – copull -uN/Aaddremove – rmmove – mvcopy – cpmergecommit – cirevertbundlerebase [59]
Monotone initclonepullpushN/AcheckoutupdateUn­knownadddroprenameN/AmergecommitrevertN/AN/A
Perforce Helix Core p4 client && p4 syncp4 syncp4 syncp4 submitRequires migration to recent streams featureeditsynclock – unlockadddeletemovecopyintegratesubmitrevertUn­knownN/A
Source Code Control System createN/AN/AN/Aadmin -fbget (readonly) – editget (readonly) – editN/A [nb 69] createN/AN/AN/Aedit -ideltaget -rN/Aedit -i
Subversion svnadmin createsvnadmin hotcopy[work-around]: svnadmin load[work-around]: svnadmin dumpN/Acheckout – coupdate – uplockadddelete – del – remove – rmmove – mv – rename – rencopy – cpmergecommit – cirevertN/AN/A
Surround SCM mkmainlineN/AN/AN/AmkbranchcheckoutgetcheckoutaddrmmoveN/AmergecheckinvoidcheckoutN/Arebase
Vesta vcreatevreplvreplvreplN/Avcheckoutvadvancevcheckout[… then] vcheckin [nb 70] vrmmv [then] vcheckin [nb 71] cp [then] vcheckin [nb 72] vdiffvcheckinvcheckin -c 0vmake [or] vestavadvance
Visual SourceSafe ?Un­knownUn­knownUn­knownN/AGet LatestGet LatestCheck OutAdd FilesDelete?Un­known?Check InUndo Check OutUn­knownUn­known
SoftwareRepository initclonepullpushLocal branchescheckoutupdatelockaddremovemovecopymergecommitrevertgenerate bundle filerebase

Advanced commands

The table shows the commands to execute common tasks and functionalities of few version-control softwares.

Table explanation

SoftwareCommand aliasesLock/unlockShelve/unshelveRollbackCherry-pickingBisectIncoming/outgoingGrepRecord
AccuRev SCM Noenable file lockingNorevert – purgepromoteNoNoNoUn­known
Azure DevOps Yeslock/unlockshelve/unshelverollbackmergeNoUn­knownUn­knownNo
GNU Bazaar [in '.bazaar/bazaar.conf' file]Noshelve/unshelveuncommitmerge (non-tracking)bisect (bisect plugin)missing –theirs-only/missing –mine-onlygrep (grep plugin)No
BitKeeper Un­knownUn­knownpark/unparkundoUn­knownbisectchanges -R/-LgrepUn­known
CVSNT [in '.cvsrc' file]edit -x/unedit [nb 73] Noadmin -o [nb 74] yes [nb 75] annotate [nb 76] Nono [60] No
Darcs NoNorevert/unrevertunrecordyes [nb 77] test –bisectpull/push –dry-runNorecord
Fossil NoNostash pop/stash apply [nb 78] merge –rollbackmerge –cherrypickbisectNosearchNo
Git [in '.gitconfig' file]Nostash/stash pop [nb 79] reset HEAD^cherry-pickbisectcherrygrepadd -p
Mercurial [in '.hgrc' file]Noshelve/unshelve (bundled extension [61] )strip (bundled extension [62] )graft(core [63] ) or transplant(bundled extension [64] )bisectincoming/outgoinggrepcommit –interactive
Monotone [in monotonerc]NoNokill_rev_locally [nb 80] pluckbisectNoNoUn­known
Perforce Helix Core via broker [65] lock/unlockshelve/unshelveobliterateinteg [66] Un­knowninterchangesgrepUn­known
Subversion Nolock/unlockshelve/unshelve [nb 81] Nosvnmerge cherry-pickingThird party tool [nb 82] status -u [nb 83] NoNo
Surround SCM NocheckoutshelfrollbackduplicatechangesNodiffsearchNo
SoftwareCommand aliasesLock/unlockShelve/unshelveRollbackCherry-pickingBisectIncoming/outgoingGrepRecord

User interfaces

The table gives Web, GUI and IDE Interface specification of few version-control softwares.

Table explanation

SoftwareWeb interfacesStand-alone GUIs Integration and/or Plug-ins for IDEs
AccuRev SCM Yes Windows (incl. Explorer integration), Linux, Unix, macOS, BeOS available IntelliJ IDEA, Eclipse, Visual Studio
Azure DevOps included (SharePoint Server used for web services)Windows included; macOS, Unix availableVisual Studio. Java client for Eclipse IDE and IntelliJ IDEA (standard in Ultimate Edition)
GNU Bazaar can use a plain webserverOlive, bzr-gtk (GTK+), Bazaar Explorer (Qt), QBzr (Qt), TortoiseBzr (Windows)Eclipse (BzrEclipse, QBzrEclipse), Visual Studio (bzr-visualstudio), TextMate (TextMateBundle), Komodo IDE, Wing IDE
BitKeeper includedincluded (bkd)Un­known
CA Software Change Manager includedEclipse-based GUI Eclipse, MS Visual Studio
IBM DevOps Code ClearCase included, Clearcase Web Interfaceolder: 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 locallyWindowsUn­known
CVS cvsweb, ViewVC, others TortoiseCVS (Windows Explorer), TkCVS (Tcl/Tk), WinCVS, macOS, GTK, Qt available Eclipse (Team), KDevelop (standard), IntelliJ IDEA (standard in Community and Ultimate Editions), Emacs (standard VC), Komodo IDE, BBEdit, Wing IDE
CVSNT cvsweb, ViewVC, othersWindows, macOS, OS/400, GTK, Qt availableAll those that support CVS, plus commercial plugins for SCCI, Bugzilla, Build
darcs darcs.cgi included; darcsweb, Trac under development; TortoiseDarcs (Windows Explorer), macOS (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 modefuel-scmUn­known
Git Gitweb, wit, cgit, GitLab, GitHub, gitorious, Trac, Kallithea, Bitbucket, Stash, Springloops, Bonobo Git Server, Gitea, Gogsgitk, git-gui (Tcl/Tk), tig, Gitbox (macOS), TortoiseGit, qgit, gitg (GNOME/GTK), (h)gct (Qt), git-cola (Qt), Git Extensions (Windows), GitEye, SmartGit/Hg, Tower, SourceTree (macOS/Windows), Sprout (macOS), GitX (macOS), GitUp (macOS), GitKraken, Sublime MergeAptana 3 Beta (Aptana Studio 3 with Git Integration); Atom; 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, Wing IDE; PyCharm
GNU arch ArchZoomArchWay (GTK2), TlaLog Emacs (standard VC)
IC Manage includedWindows, Linux, Unix, macOSEmacs, Cadence Design Framework, Synopsys Custom Designer
MKS Integrity YesWindows, Linux, Unix, Solaris, AIX,Eclipse, Microsoft Visual Studio, Perforce and others. Also provides support for the industry standard Source Code Control (SCC) interface [67]
Mercurial included, [nb 84] Trac, Kallithea Hgk (Tcl/Tk), (h)gct (Qt), TortoiseHg (Windows Explorer, Nautilus), MacHg,

MacMercurial, Murky, SourceTree (Windows/macOS), 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, Wing IDE
Monotone ViewMTN, TracMonotone,Monotone-Viz (GTK+), Guitone (Qt), Monotone Browser (GTK+, Perl)Un­known
Perforce Helix Core included, P4Web, P4FTPWindows, Linux, Mac macOS Eclipse, Visual Studio, Matlab; Game Engines: Unity, Unreal, Amazon Lumberyard; Graphics: Autodesk Maya, 3ds max, Adobe PS
Rational Team Concert YesEclipse-based GUIEclipse integration; MS Visual Studio integration(Limited)
StarTeam includedWindows, Java, Eclipse, Visual Studio, BDS2006 integration, plus Java command-lineIntelliJ IDEA (standard in Ultimate Edition), Visual Studio, JBuilder, Eclipse
Subversion Apache 2 module included, WebSVN, ViewSVN, ViewVC, Trac, SharpForge, sventon, Springloops Java, KDESVN, macOS [68] (including Finder integration), Nautilus, Qt, RabbitVCS, RapidSVN, SourceTree (macOS), 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), Wing IDE. See also Comparison of Subversion clients
Surround SCM YesWindows, macOS, Linux Eclipse, IntelliJ IDEA, JDeveloper, NetBeans, Visual Studio, WebStorm
Synergy via Telelogic Change interfaceWindows (incl. explorer integration), Linux, UnixEclipse (Telelogic proprietary), Visual Studio (Telelogic proprietary), IntelliJ IDEA (Telelogic proprietary)
Vault includedWindows, Unix-like, macOSVisual Studio 2003 and higher, Eclipse 3.2 and higher
Vesta VestaWebNoNo
Visual SourceSafe none included; SSWI, VSS RemotingWindows included; Linux, macOS and Solaris using SourceOffSite; any Java VM using Sourceanywhere for VSSVisual Studio, IntelliJ IDEA (standard in Ultimate Edition)
SoftwareWeb interfacesStand-alone GUIs Integration and/or plug-ins for IDEs

History and adoption

Here is few meta-data and historic background of few version-control softwares

Table explanation

SoftwareHistoryNotable current users
AccuRev SCM First publicly released in 2002
Azure DevOps Server First publicly released in March, 2006 as Visual Studio Team System, renamed to Team Foundation Server in 2010 and Azure DevOps Server in 2019. Microsoft
Azure DevOps Services First publicly released in 2012 as Team Foundation Service, renamed to Visual Studio Online in 2013, Visual Studio Team Services in 2015 and Azure DevOps in 2018.Microsoft
GNU Bazaar Initial release March 26, 2005. Loosely related to baz. Sponsored by Canonical Ltd.
BitKeeper Initial release May 4, 2000. Influenced by Sun WorkShop TeamWare
CA Software Change Manager Original company founded in 1977; CA SCM (then called CCC/Harvest) first released in 1995.
IBM DevOps Code ClearCase 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.
Code Co-op The first distributed VCS, demoed in 1997, [69] released soon after.
CVS First publicly released July 3, 1986; based on RCS NetBSD, OpenBSD
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.
darcs First announced on April 9, 2003
Dimensions CM 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).
Fossil Fossil and SQLite have used Fossil since 21 July 2007.
Git Started by Linus Torvalds in April 2005, following the BitKeeper controversy. [70] Linux kernel, Android, OpenJDK, Bugzilla, DragonFly BSD, FreeBSD, gcc, [71] GNOME, GNU Emacs, GnuPG, [72] GRUB2, KDE, MySQL, Perl 5, [73] PostgreSQL, Python, [74] X.Org, Cairo, Qt Development Frameworks, Samba, OpenEmbedded, Ruby, Ruby on Rails, Wine, Fluxbox, Openbox, Compiz Fusion, XCB, Xen, ELinks, XMMS2, e2fsprogs, GNU Core Utilities, DokuWiki, Drupal, LibreOffice, MediaWiki, [75] Mono, ASP.NET MVC, ADO.NET Entity Framework, NuGet, jQuery and many of its plugins, OpenCV, Twitter, Netflix, LinkedIn, Wireshark, Django, many companies like Eclipse Foundation, Ericsson, Microsoft, [76] Huawei, Apple, Amazon, LG
GNU arch Started by Tom Lord in 2001, it later became part of the GNU project. Lord resigned as maintainer in August 2005.
IC Manage Developed by IC Manage, Inc which was founded in 2003 by Shiv Sikand and Dean Drako.
PTC Integrity Originally developed by MKS Software. Purchased by PTC in May 2011 [77]
Mercurial Started April 6, 2005 by Matt Mackall, following the BitKeeper controversy. [70] First released on April 19, 2005
Monotone First released in April 2003
Perforce Helix Core Developed by Perforce Software, Inc which was founded in 1995 by Christopher Seiwald.
Rational Team Concert Version 1.0 released in June, 2008
Revision Control System July 1985
Source Code Control System Started by Marc Rochkind in 1972 (binary history files, written in Snobol on IBM-370, [78] SCCSv4 with text history files was published February 18, 1977. [79] The same history file format is still used in SCCS 5.0. [80]
StarTeam Version 1.0 1995; [81] Developed by StarBase software, acquired by Borland(which was acquired by Micro Focus).
Apache Subversion Started in 2000 by CVS developers with goal of replacing CVS
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 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.
Vault First publicly released in February, 2003Un­known
Vesta First publicly released under the LGPL in 2001
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
SoftwareHistoryNotable current 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. RTC is not a distributed revision control system; but has some distributed feature that can be configured
  3. Various forks of the original Unix sources exist, only one of which is actively maintained
  4. 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.
  5. While some forks of SCCS are free software, others remain closed as parts of commercial Unix distributions.
  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. Evil twins are common.Evil Twins in SCM, Not Hollywood Archived 2013-10-16 at the Wayback Machine
  14. Atomic commit can be enabled for individual checkin's ClearCase 7.1.1 release notes.
  15. See FAQ
  16. darcs' patches each bear a unique identifier, impossible to merge twice the same patch in a repository (without destructively modifying history using "unsafe" commands).
  17. Although it stores (and shows by default) 8-bit filename. See FAQ
  18. Using Item Revision Attributes ("Working with Items" demo, covering user define attributes Archived 2016-03-04 at the Wayback Machine ).
  19. 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.
  20. Controlled by the 'crnl-glob' setting ()
  21. 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.
  22. Since git-1.7.9 (see release notes Archived 2013-04-15 at archive.today ). Older versions do not sign commits, only tags (see the -s option in git-tag(1) Manual page)
  23. UTF-8 filenames are supported as of version 1.7.10 (MSysGit release notes).
  24. 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.
  25. Integrity enabled change packages provide complete workflow and 21 CFR Part 11 compliant digital signatures against the item controlling the change package.
  26. 2009 SP5 added a feature to merge child development paths.
  27. Mercurial includes internationalization for more than 10 languages as of 2017.
  28. Support depends upon host OS and is well supported under Unix, but not Windows OSs, due to lack of host support. See
  29. It could be done via user level hooks
  30. 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.
  31. Through the process behaviour components: Operation advisors and Operation participants. http://jazz.net/library/article/292
  32. While the source code of SCCS has been written to support internationalisation, only English message texts exist.
  33. StarTeam supports atomic commits as of version 2006
  34. 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.
  35. Since SVN 1.8 subversion supports improved move-tracking on the client side. On the server-side it's not supported yet.
  36. "Changeset Signing". Apache Subversion Mailing Lists. Retrieved 2016-08-05.
  37. New to SVN 1.5 <http://subversion.apache.org/docs/release-notes/1.5.html#merge-tracking>. A separate tool "svnmerge" <> provides merge tracking for older versions.
  38. 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.
  39. in Asian releases (v6.6a to v7.1a) and since version 7.2 in general
  40. Version change history is removed upon rename; old name not referenced.
  41. not implemented yet
  42. Can not be disabled in dynamic views.
  43. Using alias of the CVSROOT/modules file.
  44. CVS records executable bit when a file is added, but does not allow changing it later on.
  45. This is a GUI feature supported by TortoiseCVS and WinCVS both of which include/use CVSNT.
  46. Same as CVS, plus also the ability to have replicated repositories including 'shadow' repositories.
  47. Use the module/directory name or an alias created using CVSROOT/modules or CVSROOT/modules2 administration file.
  48. CVSNT supports this when the make/build tool used also supports it.
  49. Darcs can do sparse checkouts from explicit checkpoints on darcs-1 repositories, but not from darcs-2 ones[ citation needed ]
  50. Darcs can automatically detect #! scripts and make them executable on checkout.
  51. Using Sub Project functionality (Documentation Portfolio | User's Guide | Relating a Project or Stream to Other Objects).
  52. Checkouts can be nested with "fossil open –nested"
  53. The Git FAQ states that keyword expansion is not a good thing
  54. add -i and add -p, see git-add(1) Manual Page
  55. The Git FAQ explains why preserving modification time is considered harmful
  56. Configurable on server as a Project Option and on the client as a User Option.
  57. Through third-party tools such as Tortoise SVN.
  58. 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.
  59. 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
  60. Standalone Branch, archived from the original on 2016-03-04, retrieved 2014-11-06
  61. Shared Repository, archived from the original on 2016-03-04, retrieved 2014-11-06
  62. Standalone Branch, archived from the original on 2016-03-04, retrieved 2014-11-06
  63. Heavyweight Checkout and Lightweight Checkout, archived from the original on 2016-06-30, retrieved 2014-11-06
  64. rebase plugin
  65. darcs doesn't have named branches, local or not, branching is handled solely through repository cloning
  66. darcs send prepares a bundle of patches, defaults to sending it by mail but can send it to a file instead
  67. copies are detected after the fact, much like renames
  68. Mercurial Bookmarks are similar to local branches.
  69. SCCS has implicit locks, applied when checking out via edit, removed when creating a delta.
  70. Through any of various means, place (to-be-immutable) file in an immutable directory prior to vcheckin.
  71. mv(1) or link(2) the immutable file from its origin immutable directory to its destination immutable directory prior to vcheckin.
  72. Through any of various means, copy the immutable file from its origin immutable directory to its destination immutable directory prior to vcheckin.
  73. One can also enable this as a central preference in the repository server control panel or configuration file.
  74. 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.
  75. yes – use TortoiseCVS or WinCVS to commit the change to the destination and select which specific files to keep
  76. bisect is also available for cvs which should work with CVSNT
  77. 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
  78. fossil stash supports multiple shelves with comments.
  79. git stash is a multi-level shelve, it's possible to shelve several change groups at the same time
  80. Only works on a local repository and only on revisions without children. The disapprove command might be an alternative.
  81. experimental in SVN 1.10 (release notes)
  82. SVN Bisect tool svn-bisect
  83. svn status lists differences between working copy and repository, not differences between two repositories
  84. hgweb for single-repository access and hgwebdir for multiple repository access from a single HTTP address

Related Research Articles

Version control is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code text files, but generally any type of file.

<span class="mw-page-title-main">Apache Subversion</span> Free and open-source software versioning and revision control system

Apache Subversion is a version control system distributed as open source under the Apache License. Software developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly compatible successor to the widely used Concurrent Versions System (CVS).

<span class="mw-page-title-main">History of software configuration management</span>

The history of software configuration management (SCM) can be traced back as early as the 1950s, when CM, originally for hardware development and production control, was being applied to software development. Early software had a physical footprint, such as cards, tapes, and other media. The first software configuration management was a manual operation. With the advances in language and complexity, software engineering, involving configuration management and other methods, became a major concern due to issues like schedule, budget, and quality. Practical lessons, over the years, had led to the definition, and establishment, of procedures and tools. Eventually, the tools became systems to manage software changes. Industry-wide practices were offered as solutions, either in an open or proprietary manner. With the growing use of computers, systems emerged that handled a broader scope, including requirements management, design alternatives, quality control, and more; later tools followed the guidelines of organizations, such as the Capability Maturity Model of the Software Engineering Institute.

<span class="mw-page-title-main">GNU arch</span> Distributed revision control system

GNU arch software is a distributed revision control system that is part of the GNU Project and licensed under the GNU General Public License. It is used to keep track of the changes made to a source tree and to help programmers combine and otherwise manipulate changes made by multiple people or at different times.

<span class="mw-page-title-main">Monotone (software)</span> Revision control software

Monotone is an open source software tool for distributed revision control. It tracks revisions to files, groups sets of revisions into changesets, and tracks history across renames. The focus of the project is on integrity over performance. Monotone is designed for distributed operation, and makes heavy use of cryptographic primitives to track file revisions and to authenticate user actions.

<span class="mw-page-title-main">Git</span> Distributed version control software system

Git is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively.

In software development, distributed version control is a form of version control in which the complete codebase, including its full history, is mirrored on every developer's computer. Compared to centralized version control, this enables automatic management branching and merging, speeds up most operations, improves the ability to work offline, and does not rely on a single location for backups. Git, the world's most popular version control system, is a distributed version control system.

<span class="mw-page-title-main">Mantis Bug Tracker</span> Bug tracking system

Mantis Bug Tracker is a free and open source, web-based bug tracking system. The most common use of MantisBT is to track software defects. However, MantisBT is often configured by users to serve as a more generic issue tracking system and project management tool.

<span class="mw-page-title-main">Mercurial</span> Distributed revision-control tool for software developers

Mercurial is a distributed revision control tool for software developers. It is supported on Microsoft Windows, Linux, and other Unix-like systems, such as FreeBSD and macOS.

Branching, in version control and software configuration management, is the duplication of an object under version control. Each object can thereafter be modified separately and in parallel so that the objects become different. In this context the objects are called branches. The users of the version control system can branch any branch.

<span class="mw-page-title-main">Buildbot</span> Continuous integration testing framework

Buildbot is a software development continuous integration tool which automates the compile or test cycle required to validate changes to the project code base. It began as a light-weight alternative to the Mozilla project's Tinderbox, and is now used by Python, WebKit, LLVM, Blender, ReactOS, and many other projects.

<span class="mw-page-title-main">GNU Bazaar</span> Version control system

GNU Bazaar is a distributed and client–server revision control system sponsored by Canonical.

In version control software, a changeset is a set of alterations packaged together, along with meta-information about the alterations. A changeset describes the exact differences between two successive versions in the version control system's repository of changes. Changesets are typically treated as an atomic unit, an indivisible set, by version control systems. This is one synchronization model.

Fisheye is a revision-control browser and search engine owned by Atlassian, Inc. Although Fisheye is a commercial product, it is freely available to open source projects and non-profit institutions. In addition to the advanced search and diff capabilities, it provides:

<span class="mw-page-title-main">TortoiseHg</span>

TortoiseHg is a GUI front-end for Mercurial that runs on Microsoft Windows, Mac OS X, and Linux.

Unity Version Control is a cross-platform commercial distributed version control tool developed by Códice Software for Microsoft Windows, Mac OS X, Linux, and other operating systems. It includes a command-line tool, native GUIs, diff and merge tool and integration with a number of IDEs. It is a full version control stack not based on Git.

In version control systems, a repository is a data structure that stores metadata for a set of files or directory structure. Depending on whether the version control system in use is distributed, like Git or Mercurial, or centralized, like Subversion, CVS, or Perforce, the whole set of information in the repository may be duplicated on every user's system or may be maintained on a single server. Some of the metadata that a repository contains includes, among other things, a historical record of changes in the repository, a set of commit objects, and a set of references to commit objects, called heads.

Bisection is a method used in software development to identify change sets that result in a specific behavior change. It is mostly employed for finding the patch that introduced a bug. Another application area is finding the patch that indirectly fixed a bug.

TeamCity is a build management and continuous integration server from JetBrains. It was first released on October 2, 2006 and is commercial software and licensed under a proprietary license: a freemium license for up to 100 build configurations and three free Build Agent licenses are available. open-source projects may request a free license.

References

  1. "CVS team member list", Non-GNU Savannah, The GNU Project
  2. CVS Pro, March Hare
  3. "How To Buy". perforce.com. Retrieved 2018-01-18.
  4. Licesing and pricing, PlasticSCM
  5. "What is a distributed version control system". GitLab.
  6. Jean-Michel Lemieux, Countdown to the next Rational Team Concert: Part II – Source control enhancements, Jazz Community, archived from the original on 2015-09-10, retrieved 2010-12-28
  7. Apache Software Foundation
  8. Rational Synergy, IBM, 9 November 2020
  9. Vesta Configuration Management System, Sourceforge, 5 June 2013
  10. Vesta Configuration Management System, Vesta
  11. IBM – Rational ClearCase – United States, 9 November 2020, archived from the original on November 11, 2013
  12. "Changesets". March Hare Software Ltd. Retrieved 8 May 2012.
  13. Fossil Technical Overview
  14. Fossil Hash Policy
  15. Git Server Protocol
  16. "Git - fast, scalable, distributed revision control system". GitHub . 2 November 2021.
  17. "Archived copy" (PDF). Archived from the original (PDF) on 2011-11-13. Retrieved 2012-01-12.{{cite web}}: CS1 maint: archived copy as title (link)
  18. "SCM News – Kronos Turns to AccuRev for Software Configuration Management". AccuRev. 2004-04-26. Archived from the original on 2014-02-02. Retrieved 2014-01-26.
  19. "Enhanced Performance and Scalability for Cross-Platform Geographically Distributed Teams". AccuRev. 2008-09-23. Archived from the original on 2014-02-02. Retrieved 2014-01-26.
  20. "EOL conversions are supported since bzr 1.14". Doc.bazaar-vcs.org. Archived from the original on 2009-04-13. Retrieved 2014-01-26.
  21. Support Policy for National Languages and ClearCase from IBM Support
  22. https://fossil-scm.org/home/doc/tip/www/hooks.md
  23. https://www.fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki#scale
  24. 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).
  25. Archived 2014-02-10 at the Wayback Machine from the Perforce User's Guide
  26. Archived 2014-02-09 at the Wayback Machine from the Perforce User's Guide
  27. "Perforce Public Knowledge Base – Home". Perforce.com. Archived from the original on 2007-08-14. Retrieved 2014-01-26.
  28. "Perforce Knowledge Base: Internationalization and Localization". Kb.perforce.com. 2010-10-21. Archived from the original on 2012-02-08. Retrieved 2014-01-26.
  29. "Perforce Knowledge Base: Internationalization and Localization". Kb.perforce.com. 2010-10-21. Archived from the original on 2013-01-30. Retrieved 2014-01-26.
  30. – Seapine Software Releases Surround SCM 2009
  31. "GitCentric | AccuRevGit for the Enterprise". Accurev.com. Archived from the original on 2012-10-17. Retrieved 2014-01-26.
  32. "Bazaar keywords plugin". Wiki.bazaar.canonical.com. 2005-09-05. Archived from the original on 2014-02-01. Retrieved 2014-01-26.
  33. "Bazaar interactive plugin". Launchpad.net. 7 March 2008. Retrieved 2014-01-26.
  34. "Bazaar Externals plugin". Launchpad.net. 9 November 2009. Retrieved 2014-01-26.
  35. "Ignore merge operation for given extension". 4 March 2010.
  36. "bzr-svn". Launchpad.net. 8 May 2006. Retrieved 2014-01-26.
  37. "bzr-git". Launchpad.net. 15 July 2006. Retrieved 2014-01-26.
  38. "bzr-hg". Launchpad.net. 13 June 2006. Retrieved 2014-01-26.
  39. IBM Rational ClearCase: The ten best triggers from IBM DeveloperWorks
  40. The manifest, Fossil file formats
  41. "Fossil import and export". Fossil-scm.org. 2014-01-22. Archived from the original on 2014-02-02. Retrieved 2014-01-26.
  42. "FossilHelp: import"
  43. "git-submodule(1) Manual Page". Kernel.org. 2013-02-15. Retrieved 2014-01-26.
  44. "git-read-tree(1) Manual Page". kernel.org. 2014-08-24. Retrieved 2014-10-24.
  45. "Mercurial KeywordExtension page". Mercurial-scm.org. Retrieved 2014-01-26.
  46. "Mercurial RecordExtension page". Mercurial-scm.org. 2013-08-27. Retrieved 2014-01-26.
  47. "Subrepository – Mercurial". Mercurial-scm.org. Retrieved 2016-04-22.
  48. With the sparse extension included in core since Hg Rev.:4.3.
  49. "Mercurial Timestamp Extension". Mercurial-scm.org. 2012-04-24. Retrieved 2014-01-26.
  50. "Merge Tool Configuration". Mercurial-scm.org. 2017-03-14. Retrieved 2017-09-05.
  51. "hgsubversion page". Mercurial-scm.org. 2013-08-28. Retrieved 2014-01-26.
  52. "Hg-Git Mercurial Plugin". Hg-git.github.com. Retrieved 2014-01-26.
  53. "Mercurial ConvertExtension page". Mercurial-scm.org. 2013-11-29. Retrieved 2014-01-26.
  54. "Mercurial: the definitive guide: Appendix: Migrating to Mercurial"
  55. 1 2 3 "P4 User's Guide". Perforce. Retrieved 19 January 2018.
  56. "Keyword Substitution". Svnbook.red-bean.com. Retrieved 2014-01-26.
  57. "Externals Definitions". Svnbook.red-bean.com. Retrieved 2014-01-26.
  58. 1 2 darcs's default pull command is interactive, allowing the user to choose which patches to apply (merge) in realtime
  59. "Mercurial Rebase Extension". Mercurial-scm.org. 2012-10-25. Retrieved 2014-04-23.
  60. "bug 6463 – enh: search repository" . Retrieved 8 May 2012.
  61. "Mercurial Shelve extension page". Mercurial-scm.org. 2013-11-07. Retrieved 2014-01-26.
  62. "Mercurial Strip extension page". Mercurial-scm.org. Retrieved 11 May 2016.
  63. "graft -core command (since Hg Rev.2.0)". Selenic.com. Retrieved 2014-01-26.
  64. "Mercurial Transplant extension page". Mercurial-scm.org. 2012-05-12. Retrieved 2014-01-26.
  65. "The Perforce Broker". Perforce.com. Archived from the original on 2013-11-16. Retrieved 2014-01-26.
  66. "Perforce Knowledge Base: "Cherry Picking" Integrations". Kb.perforce.com. 1990-01-01. Archived from the original on 2012-03-09. Retrieved 2014-01-26.
  67. "Supported Integrations – PTC Integrity". Mks.com. 2012-09-10. Archived from the original on 2012-07-25. Retrieved 2014-01-26.
  68. "La Chose : web agency and software maker – agence web et développement de logiciels". Archived from the original on 2016-06-18. Retrieved 2006-09-20.
  69. Distributed Source Control System. Portal.acm.org. 1997-05-18. pp. 98–107. ISBN   9783540630142 . Retrieved 2014-01-26.
  70. 1 2 Towards A Better SCM: Revlogs and Mercurial, presented by Matt Mackall to the Ottawa Linux Symposium, July 2006
  71. "GCC: Anonymous read-only Git access" . Retrieved 24 October 2023.
  72. "A Hacker's Guide to GnuPG". 11 March 2021. Retrieved 24 October 2023.
  73. "Getting and Working With the Perl Source". dev.perl.org. Retrieved 2014-01-26.
  74. "Setup and building". Python.org. Retrieved 2023-10-24.
  75. "Git". MediaWiki. Retrieved 1 August 2012.
  76. "The largest Git repo on the planet". May 24, 2017.
  77. "PTC Sets New Standard for Managing Hardware and Software Development Lifecycles with MKS Integrity Acquisition – PTC Integrity". Mks.com. Archived from the original on 2014-07-22. Retrieved 2014-01-26.
  78. Rochkind, Marc J. (December 1975), "The Source Code Control System" (PDF), IEEE Transactions on Software Engineering, vol. SE-1, no. 4, pp. 364–370, doi:10.1109/tse.1975.6312866, S2CID   10006076, archived from the original (PDF) on 2011-05-25, retrieved 2014-07-31
  79. http://minnie.tuhs.org/cgi-bin/utree.pl?file=PWB1/usr/news/pibs PWB UNIX product announcement
  80. Compare the SCCS 4 file format with the SCCS 5.0 Archived 2014-08-19 at the Wayback Machine file format (as manpage sccsfile(4) in "Archived copy". Archived from the original on 2014-08-19. Retrieved 2014-08-17.{{cite web}}: CS1 maint: archived copy as title (link)
  81. Starteam®