版本控制軟體比較

以下是版本控制軟體比較。下表包括知名的版本控制和軟體配置管理（SCM）軟體的一般資訊和技術資訊。對不適用原始碼的SCM軟體，見開源配置管理軟體比較。

## 一般資訊

表格說明

- 庫模式表示源碼庫各個副本之間的關係。在一個主從式架構中，使用者通過客戶端訪問總庫；一般而言，他們本地機器只保存項目樹的一個工作副本。工作副本的變化必須提交到總庫之後才能反映給其他使用者。而在分布式架構中，庫之間是平等的，使用者一般除了他們的工作副本之外，還有本地庫來存放版本歷史。
- 併發模式表示如何管理工作副本的變化，以防止同時編輯造成庫中的數據混亂。在鎖定模式下，只有使用者從總庫請求並得到了一個文件的排他鎖，才允許改變文件。在合併模式下，使用者可以自由編輯文件，但當他們提交變化到總庫時會被告知可能存在衝突，隨後版本控制系統可能會對雙方合併這些變化，或者當發生衝突時讓使用者來決定。注意，分布式版本控制幾乎都是合併的併發模式。

軟體｜維護者｜開發狀態｜庫模式｜併發模式｜許可證｜平台支持｜費用

AccuRev SCM｜Micro Focus International｜主從式｜合併或鎖定｜專有｜大部分Java平台（類Unix系統、Windows、OS X）

GNU Bazaar｜Canonical公司｜分布式、主從式｜合併｜GNU GPL｜類Unix系統、Windows、OS X｜免費

BitKeeper｜BitMover公司｜分布式｜合併｜Apache｜類Unix系統、Windows、OS X｜免費

ClearCase｜Rational Software｜主從式｜合併或鎖定｜專有｜Linux、Windows、AIX、Solaris、HP-UX、i5/OS、OS/390、z/OS

Code Co-op｜Reliable軟體｜分布式｜合併｜專有｜Windows

Codeville｜Ross Cohen｜官方網站已下線；最新版本為2007年7月13日｜分布式｜精確codeville合併｜BSD｜類Unix系統、Windows、OS X｜免費

CVS｜CVS團隊｜維護但不增加新功能｜主從式｜Merge｜GNU GPL｜類Unix系統、Windows、OS X｜免費

CVSNT｜March Hare軟體及社區成員｜維護且新功能開發中｜主從式｜Merge or lock｜GPL或專有｜類Unix系統、Windows、OS X、i5/OS｜老版本免費（有£425配送費），CVS Suite或Change Management Server最新版本的商業許可證£85

darcs｜Darcs團隊｜分布式｜合併｜GNU GPL｜類Unix系統、Windows、OS X｜免費

Dimensions CM｜Serena軟體｜主從式｜合併或鎖定｜專有｜Windows、Linux、Solaris、AIX、HP UX、z/OS

Endevor｜CA公司｜主從式｜合併或鎖定｜專有｜z/OS

Fossil｜D. Richard Hipp｜分布式｜合併｜BSD｜POSIX、Windows、OS X及其它｜免費

Git｜濱野純｜分布式｜合併｜GNU GPL｜POSIX、Windows、OS X｜免費

GNU arch｜Andy Tai｜不維護｜分布式｜Merge｜GNU GPL｜類Unix系統、Windows、OS X｜免費

IC Manage｜IC Manage公司｜主從式｜合併或鎖定｜專有｜類Unix系統、Windows、OS X

MKS Integrity｜Integrity，PTC的子公司｜主從式｜合併或鎖定｜專有｜類Unix系統、Windows

Mercurial｜Matt Mackall｜分布式｜合併｜GNU GPL｜類Unix系統、Windows、OS X｜免費

Monotone｜Nathaniel Smith, Graydon Hoare｜分布式｜合併｜GNU GPL｜類Unix系統、Windows、OS X｜免費

Perforce｜Perforce軟體公司｜主從式｜合併或鎖定｜專有｜類Unix系統、Windows、OS X｜可以申請獲得免費許可證，限開源或學習用途；也可以免費供最多20個使用者、20個工作區使用，不限制文件數；或者免費供最多1,000個文件使用，不限制使用者數；否則$740–$900/人永久使用，或者$144–$300/人/年訂閱，量大優惠

Plastic SCM｜Codice軟體｜主從式｜合併或鎖定｜專有｜Linux、Windows、OS X｜免費供最多15個使用者；否則$595/人起，或者$3,500/25人/年

PVCS｜Serena軟體｜主從式｜鎖定｜專有｜Windows、類Unix系統

IBM Rational Team Concert｜Rational軟體｜主從式｜合併或鎖定｜專有｜Linux、Windows、AIX、Solaris、HP-UX、i5/OS、OS/390、z/OS、OS X｜免費供最多10人使用；否則不免費

Revision Control System｜Thien-Thi Nguyen｜本地｜合併或鎖定｜GNU GPL｜類Unix系統｜免費

SCM Anywhere｜Dynamsoft公司｜主從式｜合併或鎖定｜專有｜類Unix系統、Windows、OS X

Source Code Control System｜Jörg Schilling｜本地｜鎖定｜CDDL / proprietary｜類Unix系統、Windows、OS X｜習慣上，SCCS被捆綁進商業UNIX分發，也存在免費的CDDL-許可證版本

StarTeam｜Borland（Micro Focus International）｜主從式｜合併或鎖定｜專有｜Windows並通過Java客戶端跨平台

Subversion（SVN）｜Apache軟體基金會｜主從式｜合併或鎖定｜Apache｜類Unix系統、Windows、OS X｜免費

Surround SCM｜Seapine軟體｜主從式｜合併或鎖定｜專有｜Linux、Windows、OS X

SVK｜Best Practical｜不維護｜主從式，去中心化的｜Merge｜Artistic/GPL｜類Unix系統、Windows、OS X｜免費

Team Foundation Server（TFS）｜微軟｜主從式、分布式｜合併或鎖定｜專有｜Windows，通過Visual Studio Team Services跨平台｜免費供最多5個使用者在Visual Studio Team Services中或者通過codeplex.com上的開源項目使用；否則不免費，通過MSDN訂閱或直接購買許可證

Telelogic Synergy｜Rational軟體｜主從式、分布式｜合併或鎖定｜專有｜Linux、Windows、類Unix系統

Vault｜SourceGear LLC｜主從式｜合併或鎖定｜專有｜類Unix系統、Linux、Windows

Veracity｜SourceGear LLC｜網站顯示不維護；最新版本2013年3月25日 (2013-03-25)｜分布式｜Merge or lock｜Apache｜類Unix系統、Linux、Windows｜免費

Vesta｜Kenneth Schalk、Tim Mann｜網站自2006年後未更新；最新版本2009年2月15日｜分布式模擬NFS協議，可以同時使用主從式｜鎖定分支；分支合併｜LGPL｜Tru64、Linux｜免費

Visual SourceSafe（VSS）｜微軟｜只修復嚴重錯誤｜共享文件夾｜合併或鎖定｜專有｜Windows

軟體｜維護者｜開發狀態｜庫模式｜併發模式｜許可證｜平台支持｜費用

## 技術資訊

表格說明

- 軟體：應用的名稱。
- 程式語言：程式語言中的應用正在發展
- 存儲方法：表示文件在庫中存儲的形式。快照表示提交的文件被整個存儲——通常是壓縮的。變化集表示提交的文件只存儲它與前後版本的區別。
- 變化範圍：表示記錄的變化是針對單獨的文件，還是整個目錄樹。
- 版本ID：用來在庫中標識文件的特定版本。系統可以使用偽隨機標識符、版本的內容散列值或帶有版本序列號（命名空間）的文件名。而Integrated Difference的版本號則基於變化集自身，它可以表示多個文件的變化。
- 網路協議：同步變化時所使用的協議列表。
- 源碼規模：源碼的大小以兆（megabyte）為單位。

軟體｜程式語言｜存儲方法｜變化範圍｜版本號｜網路傳輸協議｜源碼體積

AccuRev SCM｜C++、Java｜變化集｜文件｜數字對：NN/NN｜自定義

GNU Bazaar｜Python、Pyrex、C｜快照｜樹｜偽隨機｜自定義、基於ssh自定義、基於HTTP自定義、HTTP、SFTP、FTP、郵件bundle、WebDAV（需要插件）｜4.1 MB

BitKeeper｜C｜變化集｜樹｜變化集的鍵、數字｜自定義、HTTP、rsh、ssh、郵件｜99 MB

CA Software Change Manager｜C、C++、Java、HTML｜變化集和快照｜文件和樹｜數字｜HTTP、TCP/IP

ClearCase｜C、Java、Perl｜變化集｜文件和樹｜數字｜自定義（CCFS）、自定義（MVFS文件系統驅動器）、HTTP

Code Co-op｜C++｜變化集｜使用者ID-序列號｜電子郵件（MAPI、SMTP/POP3、Gmail）、LAN

Codeville｜Python

CVS｜C｜變化集｜文件｜數字｜pserver、ssh｜3.3 MB

CVSNT｜C++｜變化集｜文件和樹｜數字｜基於ssh、sspi、sserver、gserver、pserver自定義｜55 MB

darcs｜Haskell｜變化集（補丁）｜樹｜n/a｜基於ssh、HTTP、郵件自定義｜1.7 MB

Dimensions CM｜C、C++、Java、C#｜快照或變化集｜文件和樹｜數字｜自定義、HTTP/HTTPS

Fossil｜C｜快照｜樹｜SHA-1或SHA-3散列｜HTTP/HTTPS、基於ssh自定義｜7.2 MB

Git｜C、shell腳本、Perl｜快照｜樹｜SHA-1散列｜自定義（git）、基於ssh自定義、HTTP/HTTPS、rsync、郵件、bundles｜22 MB

GNU arch｜C、shell腳本｜變化集｜樹｜數字｜HTTP、WebDAV

IC Manage｜C++、C｜變化集｜數字｜自定義

Mercurial｜Python、C｜變化集｜樹｜數字、SHA-1散列｜基於ssh自定義、HTTP、郵件bundles（有標準插件）｜20 MB

MKS Integrity｜C、Java｜變化集｜文件｜數字｜自定義、HTTP

Monotone｜C++｜混合｜樹｜SHA-1散列｜自定義（netsync）、基於ssh自定義、文件系統｜4.4 MB

Perforce｜C++、C、LabVIEW｜變化集｜樹｜數字｜自定義

PVCS｜C++、C｜變化集｜文件｜數字

IBM Rational Team Concert｜Java｜變化集｜樹｜數字｜基於HTTP/HTTPS的REST服務

Revision Control System｜C｜變化集｜文件｜數字｜文件系統｜5.3 MB

SCM Anywhere｜C++、Java、C#｜變化集｜文件和樹｜數字｜基於HTTP/HTTPS的SOAP

Source Code Control System｜C｜變化集｜文件｜Numbers｜NFS｜1.3 MB

StarTeam｜C++、C、Java｜快照｜文件和樹｜MD5散列｜自定義、TCP/IP

Subversion｜C｜變化集和快照｜樹｜數字｜自定義（svn）、基於ssh自定義、HTTP和SSL（使用WebDAV）｜5.2 MB

Surround SCM｜C++｜變化集｜文件和樹｜數字｜TCP/IP

SVK｜Perl｜變化集｜樹｜數字

Telelogic Synergy｜Java｜變化集（文本）/快照（二進位）｜文件｜數字｜自定義、基於ssh自定義、HTTP

Team Foundation Server｜C++和C#｜變化集｜文件和樹｜數字｜基於HTTP/HTTPS的SOAP

Vault｜C#｜變化集｜文件和樹｜數字｜HTTP、HTTPS

Veracity｜C、JavaScript｜變化集｜樹｜數字、SHA-1、SHA-2和Skein散列｜HTTP｜52 MB

Vesta｜C++｜快照｜樹｜NFS｜15.8 MB

Visual SourceSafe｜C｜快照｜文件｜數字｜SMB、DCOM

軟體｜程式語言｜存儲方法｜變化範圍｜版本號｜網路傳輸協議｜源碼體積

## 功能

表格說明

- 軟體：應用的名稱。
- 原子提交：保證所有的改變都提交成功或者都不成功。
- 文件重命名：表示系統是否允許文件在改名後仍然保留他們的版本歷史。
- 合併文件重命名：表示系統是否能夠將一個分支上的文件變化合併到另一個分支上已重命名的同一個文件上（或者相反）。如果同一個文件在兩個分支上都已經重命名，則產生重命名衝突，必須由使用者來解決。
- 符號連結：表示一個系統是否允許象普通文件一樣對符號連結進行版本控制。對符號連結的版本控制，某些人認為是一項功能，而另一些人則認為存在安全隱患（例如，一個到/etc/passwd的符號連結）。符號連結只支持特定的平台，這取決於軟體的實現。
- 前/後事件觸發：表示有能力在一個動作之前或之後觸發命令，例如發生一個提交的動作。
- 簽名版本：指集成了版本的數字簽名，例如以OpenPGP的格式。
- 合併跟蹤：表示一個系統是否記得在哪些版本之間合併了哪些變化，並且只合併那些從一個分支合併到另一個分支時丟失的變化。
- 換行轉換：表示一個系統是否能適配文本文件的換行符，從而匹配當前使用的作業系統的換行方式。控制變化的粒度，例如 Subversion，可以進行配置，依據文件類型來處理換行符的不同，而Perforce根據一個單一、每個客戶端的配置轉換所有的文本文件。
- 標籤：表示是否可以給一個特定版本賦予一個帶有含意的名字，無論這些名字被叫做標記還是標籤。
- 國際化支持：表示該軟體是否支持多語言環境和多作業系統。
- Unicode文件名支持：表示該軟體是否支持使用不同`[[字符编码]]`的文件系統之間的互操作。
- 大庫支持：系統能高效處理十億字節左右或更大的庫嗎？

軟體｜原子提交｜文件重命名｜合併文件重命名｜符號連結｜前/後事件觸發｜簽名版本｜合併跟蹤｜換行轉換｜標籤｜國際化支持｜Unicode文件名支持｜大庫支持

AccuRev SCM｜是｜是｜部分｜是｜是｜是｜是｜是｜不適用｜是｜是｜是

GNU Bazaar｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

BitKeeper｜是｜是｜是｜是｜是｜是｜是｜是｜是

CA Software Change Manager｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

ClearCase｜部分｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

Code Co-op｜是｜是｜是｜否｜部分｜否｜否｜否｜是

Codeville

CVS｜否｜否｜否｜否｜部分｜否｜否｜是｜是｜否｜是

CVSNT｜是｜是｜是｜是｜是｜否｜是｜是｜是｜是｜是｜是

darcs｜是｜是｜是｜否｜是｜是｜不適用｜否｜是｜否｜是

Dimensions CM｜是｜是｜是｜否｜是｜是｜是｜是 ｜否 ｜是｜是

Fossil｜是｜是｜是｜是｜否｜是｜是｜是｜是｜是｜是

Git｜是｜部分｜是｜是｜是｜是｜是｜是｜是｜是｜是｜部分

GNU arch｜是｜是｜是｜是｜是｜是

IC Manage｜是｜是｜否｜是｜是｜是｜是｜是｜是｜是

MKS Integrity｜是｜是｜是｜否｜是｜是｜是｜是｜是｜是｜是

Mercurial｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜部分｜部分

Monotone｜是｜是｜是｜否｜是｜是，強制的｜是｜是｜是｜是

Perforce｜是｜是｜是｜部分｜是｜是｜是｜是｜是｜是｜是｜是

IBM Rational Team Concert｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

Source Code Control System｜是｜否｜不適用｜不適用｜否｜否｜是｜否｜否｜部分｜是｜是

StarTeam｜是｜是｜是｜否｜否｜是｜是｜是｜是｜是

Subversion｜是｜是｜部分｜是｜是｜否｜是｜是｜部分｜是｜是｜是

Surround SCM｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

SVK｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

Telelogic Synergy｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

Team Foundation Server｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

Vault｜是｜是｜是｜否｜是｜否｜否｜是｜是

Veracity｜是｜是｜是｜是｜是｜否｜是｜是｜是｜否｜是｜是

Vesta｜是｜是｜是｜否｜否｜否｜是｜否｜是

Visual SourceSafe｜否｜否｜否｜是｜否｜否｜是｜是

軟體｜原子提交｜文件重命名｜合併文件重命名｜符號連結｜前/後事件觸發｜簽名版本｜合併跟蹤｜換行轉換｜標籤｜國際化支持｜Unicode文件名支持｜大庫支持

## 高級功能

表格說明

- 關鍵詞擴展：支持關鍵詞自動擴展，例如文件版本號。
- 交互式提交：交互式提交允許用戶對變化精挑細選，並決定哪些變化可以提交（未被選擇的變化只被保留為工作副本的變化），而不是只到文件級別的粒度。
- 外部引用：在源碼樹中嵌入外部庫。
- 部分檢出/複製：從庫中只檢出或複製特定子目錄的能力。
- 權限位：在版本歷史中跟蹤文件權限位。
- 保留時間戳：對於文件系統屬性中的最後修改時間，以提交時間覆蓋檢出時間。
- 使用者自動合併工具：自動合併可以嘗試通過使用者選擇的任何工具來進行（希望能以每個文件為基礎來配置）。
- 支持的格式：支持讀/寫，或者只讀（轉換，有可能再重複）。
- 共享所得目標的構建緩存：通過這一能力，如果其他協作使用者恰好共享了同樣的依賴，可以引入其他使用者構建的所得目標，而無需在本地重建它們。

軟體｜關鍵詞擴展｜交互式提交｜外部引用｜部分檢出/複製｜權限位｜保留時間戳｜使用者自動合併工具｜支持的格式｜共享所得目標的構建緩存

AccuRev SCM｜是｜是｜是｜僅執行位｜是｜是｜git（bi-dir）｜否

GNU Bazaar｜是｜是｜是｜否｜僅執行位｜否｜是｜bzr、subversion、git、hg、任何有快速導出功能的｜否

BitKeeper｜POSIX和Revision Control System｜是｜是｜是｜是｜是｜是｜bitkeeper｜否

CA Software Change Manager｜否｜是｜否｜是｜僅執行位｜是｜是｜CA Software Change Manager｜否

ClearCase｜是｜否｜否｜是｜是｜是｜是｜ClearCase｜是

CVS｜Revision Control System｜否｜是｜是｜部分｜是｜否｜cvs｜否

CVSNT｜Revision Control System｜是｜是｜是｜是｜是｜否｜cvs｜是

darcs｜否｜是｜否｜否｜部分｜否｜僅針對衝突｜darcs｜否

Dimensions CM｜是｜否｜是｜是｜是｜是｜是｜從ClearCase、Subversion、CVS、PVCS、ChangeMan DS遷移

Fossil｜否｜是｜是｜否｜僅執行位｜否｜否｜fossil（使用sqlite），任何有快速導出功能的｜否

Git｜否｜是｜是｜是｜僅執行位｜否｜是｜git、cvs、subversion、hg、任何有快速導出功能的｜否

Mercurial｜是｜是｜是｜部分｜僅執行位｜通過（alpha）擴展｜僅非瑣碎的情況｜hg、subversion、git、任何被Convert擴展支持的其它格式｜否

Perforce｜是｜否｜否｜是｜是｜是｜是｜Perforce｜否

IBM Rational Team Concert｜否｜是｜是｜是｜是｜N/A｜否

Source Code Control System｜是｜否｜不適用｜是｜僅執行位｜某些變體｜否｜rcs｜否

Surround SCM｜是｜否｜否｜是｜否｜是｜是｜Surround｜否

SVK｜是｜是｜是｜subversion｜否

Subversion｜是｜部分｜是｜是｜僅執行位｜部分｜是｜subversion｜否

Team Foundation Server｜否｜是｜是｜是｜是｜Git、 Team Foundation Version Control (TFVC)

Veracity｜否｜否｜否｜否｜是｜是｜是｜git、cvs、subversion、hg、任何有快速導出功能的｜否

Vesta｜否｜否｜是通過SDL｜否｜是｜否｜Vesta｜是

Visual SourceSafe｜是｜是｜是｜是｜否

軟體｜關鍵詞擴展｜交互式提交｜外部引用｜部分檢出/複製｜權限位｜保留時間戳｜使用者自動合併工具｜支持的格式｜共享所得目標的構建緩存

## 基本命令

表格說明

- 綠格中不在方括號里的命令使用了交互式的命令行提示符。方括號中的文本用來解釋哪裡能找到等價功能。
- 庫初始化：創建一個新的空庫（比如，版本控制資料庫）。
- 克隆：創建一個完全相同的庫實例（在一個安全事務中）。
- 拉：將版本從遠程庫下載到本地庫。
- 推：將版本從本地庫上傳到遠程庫。
- 本地分支：創建一個不存在於原始遠程庫中的本地分支。
- 檢出：從（遠程）庫創建一個本地工作副本。
- 更新：用庫中的最新版本更新工作副本中的文件。
- 鎖定：鎖定庫中的文件，以免被其他使用者更改。
- 添加：標記指定的文件，以便在下一次提交時添加到庫中。
- 移除：標記指定的文件，以便在下一次提交時移除（註：保存在移除時及之前的相關版本歷史）。
- 移動：標記指定的文件，以便在下一次提交時移動到新的位置。
- 拷貝：標記指定的文件，以便在下一次提交時拷貝。
- 合併：融合同一個工作副本路徑的兩個來源之間的差別。
- 提交：將變化記錄到庫中。
- 恢復：從庫中恢復工作副本文件。
- 生成打包文件：創建一個包含壓縮的對給定庫的變化集的文件。
- 重定位：將本地提交重定位到已更新的上游地址。

軟體｜庫初始化｜克隆｜拉｜推｜本地分支｜檢出｜更新｜鎖定｜添加｜移除｜移動｜拷貝｜合併｜提交｜恢復｜生成打包文件｜重定位

AccuRev SCM｜mkdepot｜N/A｜N/A｜N/A｜mkstream｜mkws｜update｜anchor｜add｜defunct｜move｜cp 然後 add / incl -s / ln｜merge｜keep / promote｜purge / revert｜N/A｜chstream

GNU Bazaar｜init / init --no-tree / init-repo / init-repo --no-trees｜branch / branch --no-tree｜pull｜push｜init / branch｜checkout / checkout --lightweight｜update｜N/A｜add｜rm｜mv｜N/A｜merge｜commit｜revert｜send｜rebase

BitKeeper｜setup｜clone｜pull｜push｜clone｜co｜pull｜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｜add｜rm｜N/A｜N/A｜update -j｜commit｜remove 然後 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｜push｜N/A｜clone｜pull｜add｜remove｜move｜N/A｜pull / push｜record｜revert｜send -o｜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的庫本身是一個單獨的sqlite文件｜N/A

Git｜init / init --bare｜clone / clone --bare｜fetch｜push｜branch｜checkout｜pull｜N/A｜add｜rm｜mv｜cp 然後 git add｜merge｜commit｜revert｜bundle｜rebase

Mercurial｜init｜clone｜pull｜push｜bookmark｜clone｜pull -u｜N/A｜add｜rm｜mv｜copy｜merge｜commit｜revert｜bundle｜rebase

Monotone｜init｜clone｜pull｜push｜N/A｜checkout｜update｜add｜drop｜rename｜N/A｜merge｜commit｜revert｜N/A｜N/A

Perforce｜p4 client 和 p4 sync｜p4 sync｜p4 sync｜p4 submit｜要求遷移到最近的流功能｜edit｜sync｜lock / unlock｜add｜delete｜move｜copy｜integrate｜submit｜revert｜N/A

SVK｜svk depotmap 或 svnadmin create)｜mirror｜pull｜push｜copy｜checkout｜update｜add｜rm｜mv｜cp｜merge｜commit｜revert｜N/A｜smerge -I

Subversion｜svnadmin create｜svnadmin hotcopy｜變通：svnadmin load｜變通：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

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｜……然後 vcheckin｜vrm｜mv 然後 vcheckin｜cp 然後 vcheckin｜vdiff｜vcheckin｜vcheckin -c 0｜vmake 或 vesta｜vadvance

Visual SourceSafe｜？｜N/A｜Get Latest｜Get Latest｜Check Out｜Add Files｜Delete｜？｜？｜Check In｜Undo Check Out

軟體｜庫初始化｜克隆｜拉｜推｜本地分支｜檢出｜更新｜鎖定｜添加｜移除｜移動｜拷貝｜合併｜提交｜恢復｜生成打包文件｜重定位

## 高級命令

表格說明

- 綠格中不在方括號里的命令使用了交互式的命令行提示符。方括號中的文本用來解釋哪裡能找到等價功能。
- 命令別名：為指定的命令或組合創建定製的別名
- 鎖定/解鎖：排他性地鎖定一個文件，以防被其他人編輯。
- 擱置/取消擱置：在工作目錄中暫時擱置部分或全部的變化。
- 回滾：從歷史中移除一個版本。
- 挑選：只把某些修訂從一個分支移動到另一個分支（而不是合併分支）。
- 二分檢索：在源碼歷史中，使用二分檢索來查找一個變化的引入或修復。
- 出入：查詢本地庫和遠程庫之間的差別（該差別可能會以推/拉的方式發送/取回）。
- 過濾：在庫中搜索，以找到那些匹配一個模式的行。
- 記錄：在一次提交中只包含一個文件的某些變化，而不包含其它的變化。

軟體｜命令別名｜鎖定/解鎖｜擱置/取消擱置｜回滾｜挑選｜二分檢索｜出入｜過濾｜記錄

AccuRev SCM｜否｜允許文件鎖定｜否｜revert / purge｜promote｜否｜否｜否

GNU Bazaar｜在「.bazaar/bazaar.conf」文件中｜否｜shelve / unshelve｜uncommit｜merge（不跟蹤）｜bisect（二分檢索插件）｜missing --theirs-only / missing --mine-only｜grep（過濾插件）｜否

BitKeeper｜park / unpark｜undo｜bisect｜changes -R/-L｜grep

CVSNT｜在「.cvsrc」文件中｜edit -x / unedit｜否｜admin -o｜有｜annotate｜否｜否｜否

Darcs｜否｜否｜revert / unrevert｜unrecord｜有｜test --bisect｜pull / push --dry-run｜否｜record

Fossil｜否｜否｜stash pop / stash apply｜merge --rollback｜merge --cherrypick｜bisect｜否｜search｜否

Git｜在「.gitconfig」文件中｜否｜stash / stash pop｜reset HEAD^｜cherry-pick｜bisect｜cherry｜grep｜add -p

Mercurial｜在「.hgrc」文件中｜否｜shelve / unshelve（附帶擴展）｜strip（附帶擴展）｜graft（核心）或transplant（附帶擴展）｜bisect｜incoming / outgoing｜grep｜record（附帶擴展）

Monotone｜在monotonerc中｜否｜否｜kill_rev_locally｜pluck｜bisect｜否｜否

Perforce｜通過broker｜lock / unlock｜shelve / unshelve｜obliterate｜integ｜grep

SVK｜否｜否｜否｜否｜svk merge｜否｜status｜否｜否

Subversion｜否｜lock / unlock｜否｜否｜svnmerge cherry-picking｜第三方工具｜status -u｜否｜否

Surround SCM｜否｜checkout｜shelf｜rollback｜duplicatechanges｜否｜diff｜search｜否

Team Foundation Server｜是｜lock / unlock｜shelve / unshelve｜rollback｜merge｜否｜否

Veracity｜否｜lock / unlock｜否｜否｜否｜否｜incoming / outgoing｜否｜否

軟體｜命令別名｜鎖定/解鎖｜擱置/取消擱置｜回滾｜挑選｜二分檢索｜出入｜過濾｜記錄

## 使用者界面

表格說明

- 軟體：應用的名稱。
- 網頁版界面：表示應用軟體是否包含一個網頁版界面。網頁版界面可以允許軟體發送診斷數據到一個網站，甚至能允許對應用軟體進行遠程控制。
- 圖形界面：GUI，圖形使用者界面。如果一個軟體產品提供了GUI，它的功能可以通過應用程式窗口來訪問，而不是只能通過象DOS界面一樣在命令提示符後面敲入命令來訪問。
- 插件：功能通過集成開發環境來實現。最低的功能應該是，列出文件的版本狀態，及檢入/檢出文件。

軟體｜網頁版界面｜獨立GUI｜IDE的集成與/或插件

AccuRev SCM｜有｜Windows（incl.與資源管理器整合）、Linux、Unix、OS X、BeOS｜IntelliJ IDEA、Eclipse、Visual Studio

GNU Bazaar｜可以使用一個簡單的網頁伺服器｜Olive、bzr-gtk（GTK+）、Bazaar Explorer（Qt）、QBzr（Qt）、TortoiseBzr（Windows）｜Eclipse（BzrEclipse、QBzrEclipse）、Visual Studio（bzr-visualstudio）、TextMate（TextMateBundle）、Komodo IDE

BitKeeper｜包含｜包含（bkd）

CA Software Change Manager｜包含｜基於Eclipse的GUI｜Eclipse、MS Visual Studio

ClearCase｜是包含，Clearcase網頁界面｜較老的：MS Windows自帶的，類Unix系統基於Motif的GUI，`[[Z/OS]]`的TSO客戶端。｜Emacs、Eclipse（IBM所有，Eclipse-CCase）、Visual Studio（IBM所有）、KDevelop（標準）、IntelliJ IDEA（標準基本版）

Code Co-op｜不需要，因為整個工程在本地複製｜Windows

CVS｜cvsweb、ViewVC及其它｜TortoiseCVS、TkCVS （Tcl/Tk）、（Windows資源管理器）、WinCVS, OS X、GTK、Qt｜Eclipse（團隊）、KDevelop（標準）、IntelliJ IDEA（標準，在社區版和終極版中）、Emacs（標準VC）、Komodo IDE、BBEdit

CVSNT｜cvsweb、ViewVC及其它｜Windows、OS X、OS/400、GTK、Qt｜所有支持CVS的，加上SCCI、Bugzilla、Build的商業插件

darcs｜是darcs.cgi包含；darcsweb、Trac｜開發中；TortoiseDarcs（Windows資源管理器）、OS X（alpha）｜Eclipse（eclipsedarcs）、Emacs（vc-darcs.el）

Dimensions CM｜是｜Windows（incl.與資源管理器整合）｜Eclipse、Visual Studio、IntelliJ IDEA、XCode、Powerbuilder

Fossil｜是包含內嵌的網頁伺服器（UI/伺服器模式），通過CGI模式可以運行多個庫｜fuel-scm

Git｜是Gitweb、wit、cgit、GitLab、GitHub、gitorious、Trac、Kallithea、 Rhodecode、Deveo、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（集成Git的Aptana Studio 3）；Eclipse （JGit/EGit）；Netbeans （NbGit）；KDevelop；Visual Studio（Git擴展）；Emacs（標準VC擴展）；SAP Web IDE；TextMate（Git TextMate Bundle）；Vim（VCSCommand插件和fugitive插件）；IntelliJ IDEA >8.1（標準，社區和基本版）；Komodo IDE；Anjuta

GNU arch｜ArchZoom｜ArchWay（GTK2）、TlaLog｜Emacs（標準VC）

IC Manage｜是包含｜Windows、Linux、Unix、OS X｜Emacs、Cadence Design Framework、Synopsys Custom Designer

MKS Integrity｜是有｜Windows、Linux、Unix、Solaris、AIX｜Eclipse、Microsoft Visual Studio、Perforce及其它。還提供支持工業標準的Source Code Control（SCC）界面

Mercurial｜是包含，Bitbucket、Trac、Kallithea、Rhodecode、Deveo｜Hgk（Tcl/Tk）、（h）gct（Qt）、TortoiseHg（Windows資源管理器、Nautilus）、MacHg、 MacMercurial、Murky、SourceTree（Windows/OS X）、TortoiseHg、SmartGit/Hg｜IntelliJ IDEA（hg4idea第三方插件）、Eclipse（Mercurial Eclipse）、NetBeans、Visual Studio 2008、Emacs、Vim（VCSCommand插件）、Komodo IDE、Eric Python IDE

Monotone｜ViewMTN、TracMonotone｜Monotone-Viz（GTK+)、Guitone（Qt）、Monotone Browser（GTK+、Perl）

Perforce｜是包含，P4Web、P4FTP｜Windows、Linux、Unix、OS X、BeOS｜Eclipse、Visual Studio（P4SCC）、KDevelop（標準？）、IntelliJ IDEA（標準基本版）、Komodo IDE、BBEdit、Emacs（p4.el）

Rational Team Concert｜是有｜基於Eclipse的GUI｜Eclipse整合；MS Visual Studio整合（有限的）

StarTeam｜是包含｜Windows、Java、Eclipse、Visual Studio、BDS2006整合、Java命令行｜IntelliJ IDEA（標準基本版）、Visual Studio、JBuilder、Eclipse

Subversion｜是包含Apache 2模塊，WebSVN、ViewSVN、ViewVC、Trac、SharpForge、sventon、Springloops、Deveo｜Java、KDESVN、OS X（包含Finder整合）、Nautilus、Qt、RabbitVCS、RapidSVN、SourceTree（OS X）、TortoiseSVN（Windows資源管理器）｜Anjuta、BBEdit、Eclipse（Subclipse、Subversive）、Emacs（標準VC）、IntelliJ IDEA（標準社區和基本版）、KDevelop（標準）、Komodo IDE、MonoDevelop（標準）、Netbeans、RabbitVCS（GEdit版）、TextMate（SVNMate插件）、Visual Studio（AnkhSVN、VisualSVN）

Surround SCM｜有｜Windows、OS X、Linux｜Dreamweaver、Eclipse、IntelliJ IDEA、JDeveloper、KDevelop、NetBeans、Powerbuilder、Visual Studio、WebStorm

Synergy (版本控制軟體)｜是通過Telelogic Change界面｜Windows（incl.與資源管理器整合）、Linux、Unix｜Eclipse（Telelogic所有）、Visual Studio（Telelogic所有）、IntelliJ IDEA（Telelogic所有）

Team Foundation Server｜是包含（Sharepoint Server用於網頁服務）｜Windows、OS X、Unix｜Visual Studio、Eclipse IDE和IntelliJ IDEA（標準基本版）的Java客戶端

Vault｜是包含｜Windows、類Unix系統、OS X｜Visual Studio 2003及以上、Eclipse 3.2及以上

Veracity｜是包含｜Windows上的Tortoise界面｜否

Vesta｜是VestaWeb｜否｜否

Visual SourceSafe｜不包含；SSWI、VSS Remoting｜Windows包含；Linux、OS X和Solaris使用SourceOffSite；任何有Java虛擬機的使用Sourceanywhere｜Visual Studio、IntelliJ IDEA（標準，基本版）

軟體｜網頁版界面｜獨立GUI｜IDE的集成與/或插件

## 歷史及使用者

表格說明

- 軟體：應用的名稱。
- 歷史：簡短地講述軟體的起源好發展。
- 知名使用者：使用該軟體作為主要版本控制系統的知名工程列表，不包括該軟體自己。如果它有一個完整的列表，後邊會列出該列表的連結。

軟體｜歷史｜知名使用者

AccuRev SCM｜2002年首次公開發布。｜美國航空、福特汽車、洛克希德·馬丁、Orbitz、施樂、McAfee、Polycom、閃迪、西門子、索尼、賽門鐵克、Thomson Financial、威瑞森無線等等。

GNU Bazaar｜與baz有一定關係。由Canonical公司贊助。｜Ubuntu、Launchpad、KatchTV。

BitKeeper｜受Sun WorkShop TeamWare影響｜Linux內核（2002–2005）及很多公司。

CA Software Change Manager｜原公司成立於1977年；CA SCM（後來被叫做CCC/Harvest）首次發布於1995年。｜沒有公司的允許，CA不會公開客戶的名單。CA SCM被很多有全球開發團隊的公司所使用，其中有13家位列財富100。

ClearCase｜最初在1990年由Atria軟體開發，它所追隨的概念由阿波羅電腦於1980年代在DSEE上開發。最近的版本是8.0.1，於2011年11月發布。｜IBM、阿爾卡特-朗訊、思科、摩托羅拉、西門子、愛立信、諾基亞、環球銀行金融電信協會及其它世界性大組織。

Code Co-op｜第一個分布式版本控制系統，於1997年進行演示，隨後很快發布。

CVS｜1986 首次被公開發布於1986年7月3日；基於RCS。

CVSNT｜首次公開發布於1998年；基於CVS。由CVS開發者開始，目的是加入對更寬範圍的開發方法和過程的支持。｜主要由專業人員（非業餘愛好者），例如：AnandTech、Wachovia、Wells Fargo、Goldman Sachs。

darcs｜首次被宣布於2003年4月9日。｜Mnet、xmonad、使用Darcs的項目。

Dimensions CM｜1980年代後期，SQL軟體以「PCMS Dimensions」的名字開發（PCMS意為Product Configuration Management，產品配置管理）。經過多次兼併，該產品以「PVCS Dimensions」（1990年代，Intersolv）、「Dimensions」（2000年代早期，Merant）、「ChangeMan Dimensions」（2004年，Serena軟體）及最終的「Dimensions CM」（2007年以後，Serena軟體）為名發布。｜洛克希德·馬丁、歐洲空間局、富士通商業通訊系統及許多全球性公司。

Fossil｜Fossil和SQLite曾經在2007年7月21日以後使用Fossil。｜SQLite、Fossil、Tcl/Tk項目

Git｜林納斯·托瓦茲於2005年4月開始，隨著與BitKeeper的分歧。｜Linux內核、Android、Bugzilla、GNOME、GNU Emacs、GRUB2、KDE、MySQL、Perl 5、PostgreSQL、X.Org、Cairo、Qt開發框架、Samba、OpenEmbedded、Ruby、Ruby on Rails、Wine、Fluxbox、Openbox、Compiz Fusion、XCB、ELinks、XMMS2、e2fsprogs、GNU核心工具、DokuWiki、Drupal、LibreOffice、MediaWiki、 Mono、ASP.NET MVC、ADO.NET實體框架、NuGet、jQuery及其眾多插件、OpenCV、Wireshark、Django、許多公司如愛立信、微軟、華為、蘋果、亞馬遜、LG。

GNU arch｜Tom Lord於2001年開始，它後來變成GNU項目的一部分。Lord於2005年8月以維護者的身份辭職。｜GNU Savannah和Gna.org項目。

IC Manage｜由IC Manage公司開發，該公司由Shiv Sikand和Dean Drako成立於2003年。｜許多全球性機構。

MKS Integrity｜最初由MKS軟體開發。2011年5月由PTC購買。｜許多全球工程和IT組織。

Mercurial｜2005年4月6日由Matt Mackall開始，隨著與BitKeeper的分歧。首次發布於2005年4月19日。｜Python、Mozilla、OpenJDK、NetBeans、Xine、Xen、OpenSolaris、wmii、MoinMoin、Linux-HA、Pidgin、Gajim、Nginx、PyPy、SDL。

Monotone｜首次發布於2003年4月。｜CTWM、Xaraya、I2P、Botan。

Perforce｜由Perforce軟體公司開發，該公司由Christopher Seiwald於1995年建立。｜許多全球性機構、FreeBSD、Google。

Rational Team Concert｜1.0版本於2008年被發布。｜IBM。

Revision Control System｜1985年7月。｜RCS通常（但不總是）會被其它系統所取代，比如CVS，而CVS正是源於對RCS的包裝。

Source Code Control System｜由Marc Rochkind於1972開始（二進位歷史文件，用Snobol在IBM-370上編寫），使用文本歷史文件的SCCSv4於1977年2月18日發布。同樣的歷史文件格式在SCCS 5.0中繼續使用。｜作為POSIX的代碼控制工具，SCCS被廣泛應用於UNIX平台，但並未被包含在許多Linux分發版本中。Sun WorkShop TeamWare使用SCCS文件。

StarTeam｜1.0版本於1995年由StarBase軟體開發，StarBase後被Borland收購（Borland後被Micro Focus收購）。｜Borland、BT、Cintas、EDS、Kaiser Permanente、Met Office、Quest軟體、Raymond James、西門子及很多全球分布的公司。

Subversion｜於2000年由CVS開發者開始，目標是取代CVS。｜ASF、clang、gcc、SourceForge、FreeBSD、Google代碼、KDE（直到2011年）、PuTTY、Zope、Xiph、GnuPG、CUPS、Apache OpenOffice、TWiki、WebKit、應用於CodePlex及很多全球性機構。

SVK｜作者是高嘉良和唐鳳。2003年11月19日出了第一個版本，2005年5月9日1.00版，2006年12月28日2.0.0版。2006年6月5日，SVK成為Best Practical的一個產品。｜Request Tracker

Synergy (版本控制軟體)｜1988年由Caseware開始開發，稱為AmplifyControl。該公司於1994年改名為Continuus，而該產品改名為Continuus/CM之後變得更加知名。Continuus在公開上市後不久於1999年被Telelogic收購；該產品被改名為Telelogic Synergy。2008年IBM收購了Telelogic，以便將其集成到它們的Rational工具套件中。該產品現在以IBM Rational Synergy聞名。

Team Foundation Server｜首次公開發布於2006年3月。

Vault｜首次公開發布於2003年2月。

Vesta｜首次公開發布於2001年，使用LGPL。｜DEC Alpha團隊、康柏Alpha團隊、Intel微處理器開發。

Visual SourceSafe｜最初由一家叫做One Tree軟體的公司創立，版本3.1。公司後被微軟收購，微軟於1995年左右發布了VSS的4.0版本。

軟體｜歷史｜知名使用者