版本控制軟件比較
以下是版本控制軟件比較。下表包括知名的版本控制和軟件配置管理(SCM)軟件的一般信息和技術信息。對不適用源代碼的SCM軟件,見開源配置管理軟件比較。
一般信息
表格說明
- 庫模式表示源碼庫各個副本之間的關係。在一個主從式架構中,用戶通過客戶端訪問總庫;一般而言,他們本地機器只保存項目樹的一個工作副本。工作副本的變化必須提交到總庫之後才能反映給其他用戶。而在分布式架構中,庫之間是平等的,用戶一般除了他們的工作副本之外,還有本地庫來存放版本歷史。
- 併發模式表示如何管理工作副本的變化,以防止同時編輯造成庫中的數據混亂。在鎖定模式下,只有用戶從總庫請求並得到了一個文件的排他鎖,才允許改變文件。在合併模式下,用戶可以自由編輯文件,但當他們提交變化到總庫時會被告知可能存在衝突,隨後版本控制系統可能會對雙方合併這些變化,或者當發生衝突時讓用戶來決定。注意,分布式版本控制幾乎都是合併的併發模式。
軟件 | 維護者 | 開發狀態 | 庫模式 | 併發模式 | 許可證 | 平台支持 | 費用 |
---|---|---|---|---|---|---|---|
AccuRev SCM | Micro Focus International | 活躍 | 主從式 | 合併或鎖定 | 專有 | 大部分Java平台(類Unix系統、Windows、OS X) | 付費($350/人) |
GNU Bazaar | Canonical公司 | 活躍 | 分布式、主從式 | 合併 | GNU GPL | 類Unix系統、Windows、OS X | 免費 |
BitKeeper | BitMover公司 | 活躍 | 分布式 | 合併 | Apache | 類Unix系統、Windows、OS X | 免費 |
ClearCase | IBM Rational | 活躍 | 主從式 | 合併或鎖定[nb 1] | 專有 | Linux、Windows、AIX、Solaris、HP-UX、i5/OS、OS/390、z/OS | 付費($4600/浮動許可證)(每個用戶自動持有至少30分鐘,可以手動釋放) |
Code Co-op | Reliable軟件 | 活躍 | 分布式 | 合併 | 專有 | Windows | 付費($150/人) |
Codeville | Ross Cohen | 官方網站已下線;最新版本為2007年7月13日 | 分布式 | 精確codeville合併 | BSD | 類Unix系統、Windows、OS X | 免費 |
CVS | CVS團隊[1] | 維護但不增加新功能 | 主從式 | Merge | GNU GPL | 類Unix系統、Windows、OS X | 免費 |
CVSNT | March Hare軟件[2]及社區成員 | 維護且新功能開發中 | 主從式 | 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公司[3] | 活躍 | 主從式 | 合併或鎖定 | 專有 | 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個工作區使用,不限制文件數;[4]或者免費供最多1,000個文件使用,不限制用戶數;否則$740–$900/人永久使用,或者$144–$300/人/年訂閱,量大優惠[5] |
Plastic SCM | Codice軟件 | 活躍 | 主從式 | 合併或鎖定 | 專有 | Linux、Windows、OS X | 免費供最多15個用戶;否則$595/人起,或者$3,500/25人/年[6] |
PVCS | Serena軟件 | 活躍 | 主從式 | 鎖定 | 專有 | Windows、類Unix系統 | 付費 |
Rational Team Concert | IBM Rational | 活躍 | 主從式[nb 2][7][8] | 合併或鎖定 | 專有 | 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 | 付費(單用戶免費;$299/人,量大優惠) |
Source Code Control System | Jörg Schilling[nb 3] | 活躍 | 本地 | 鎖定[nb 4] | CDDL / proprietary[nb 5] | 類Unix系統、Windows、OS X | 習慣上,SCCS被捆綁進商業UNIX分發,也存在免費的CDDL-許可證版本 |
StarTeam | Borland(Micro Focus) | 活躍 | 主從式 | 合併或鎖定 | 專有 | Windows並通過Java客戶端跨平台 | 付費(Quoted on an individual basis) |
Subversion(SVN) | Apache軟件基金會[9] | 活躍 | 主從式[nb 6] | 合併或鎖定[nb 7] | Apache | 類Unix系統、Windows、OS X | 免費 |
Surround SCM | Seapine軟件 | 活躍 | 主從式 | 合併或鎖定 | 專有 | Linux、Windows、OS X | 付費($595/人;訂閱$29/月) |
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訂閱或直接購買許可證 |
Synergy | IBM Rational | 活躍 | 主從式、分布式 | 合併或鎖定 | 專有 | Linux、Windows、類Unix系統 | 付費(聯繫IBM Rational[10]) |
Vault | SourceGear LLC | 活躍 | 主從式 | 合併或鎖定 | 專有 | 類Unix系統、Linux、Windows | 付費($300/人) |
Veracity | SourceGear LLC | 網站顯示不維護;最新版本2013年3月25日 (2013-03-25) | 分布式 | Merge or lock | Apache | 類Unix系統、Linux、Windows | 免費 |
Vesta | Kenneth Schalk、Tim Mann[11][12] | 網站自2006年後未更新;最新版本2009年2月15日 | 分布式模擬NFS協議,可以同時使用主從式 | 鎖定分支;分支合併 | LGPL | Tru64、Linux | 免費 |
Visual SourceSafe(VSS) | 微軟 | 只修復嚴重錯誤 | 共享文件夾 | 合併或鎖定 | 專有 | Windows | 付費(~$500/許可證,或單許可證+每個MSDN訂閱 |
軟件 | 維護者 | 開發狀態 | 庫模式 | 併發模式 | 許可證 | 平台支持 | 費用 |
技術信息
表格說明
- 軟件:應用的名稱。
- 編程語言:編程語言中的應用正在發展
- 存儲方法:表示文件在庫中存儲的形式。快照表示提交的文件被整個存儲——通常是壓縮的。變化集表示提交的文件只存儲它與前後版本的區別。
- 變化範圍:表示記錄的變化是針對單獨的文件,還是整個目錄樹。
- 版本ID:用來在庫中標識文件的特定版本。系統可以使用偽隨機標識符、版本的內容散列值或帶有版本序列號(命名空間)的文件名。而Integrated Difference的版本號則基於變化集自身,它可以表示多個文件的變化。
- 網絡協議:同步變化時所使用的協議列表。
- 源碼規模:源碼的大小以兆(megabyte)為單位。
軟件 | 編程語言 | 存儲方法 | 變化範圍 | 版本號 | 網絡傳輸協議 | 源碼體積 |
---|---|---|---|---|---|---|
AccuRev SCM | C++、Java | 變化集 | 文件 | 數字對:NN/NN | 自定義 | 未知 |
GNU Bazaar | Python、Pyrex、C[nb 8] | 快照 | 樹 | 偽隨機 | 自定義、基於ssh自定義、基於HTTP自定義、HTTP、SFTP、FTP、郵件bundle[nb 9]、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 | 變化集 | 文件和樹[13] | 數字 | 自定義(CCFS)、自定義(MVFS文件系統驅動器)、HTTP | 未知 |
Code Co-op | C++ | 變化集 | 未知 | 用戶ID-序列號 | 電子郵件(MAPI、SMTP/POP3、Gmail)、LAN | 未知 |
Codeville | Python | 未知 | 未知 | 未知 | 未知 | 未知 |
CVS | C | 變化集 | 文件 | 數字 | pserver、ssh | 3.3 MB |
CVSNT | C++ | 變化集 | 文件和樹[14] | 數字 | 基於ssh、sspi、sserver、gserver、pserver自定義 | 55 MB |
darcs | Haskell | 變化集(補丁)[nb 10] | 樹 | 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[nb 11] |
Git | C、shell腳本、Perl | 快照 | 樹 | SHA-1散列 | 自定義(git)、基於ssh自定義[15]、HTTP/HTTPS、rsync、郵件、bundles | 22 MB |
GNU arch | C、shell腳本 | 變化集 | 樹 | 數字 | HTTP、WebDAV | 未知 |
IC Manage | C++、C | 變化集 | 未知 | 數字 | 自定義 | 未知 |
Mercurial | Python、C | 變化集 | 樹 | 數字、[nb 12]SHA-1散列 | 基於ssh自定義、HTTP、郵件bundles(有標準插件) | 20 MB |
MKS Integrity | C、Java | 變化集 | 文件 | 數字 | 自定義、HTTP | 未知 |
Monotone | C++ | 混合[nb 13] | 樹 | SHA-1散列 | 自定義(netsync)、基於ssh自定義、文件系統 | 4.4 MB |
Perforce | C++、C、LabVIEW | 變化集 | 樹 | 數字 | 自定義 | 未知 |
PVCS | C++、C | 變化集 | 文件 | 數字 | 未知 | 未知 |
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 | 變化集 | 樹 | 數字 | 未知 | 未知 |
Synergy | Java | 變化集(文本)/快照(二進制) | 文件 | 數字 | 自定義、基於ssh自定義、HTTP | |
Team Foundation Server | C++和[C♯|C#] | 變化集 | 文件和樹 | 數字 | 基於HTTP/HTTPS的SOAP | 未知 |
Vault | C#] | 變化集 | 文件和樹 | 數字 | HTTP、HTTPS | 未知 |
Veracity | C、JavaScript | 變化集 | 樹 | 數字、[nb 14]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 | 是 | 是 | 部份[nb 15] | 是 | 是 | 是 | 是 | 是 | 不適用 | 是 | 是[16] | 是[17][18] |
GNU Bazaar | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是[19] | 是 | 是 | 是 | 未知 |
BitKeeper | 是 | 是 | 是 | 是 | 是 | 未知 | 是 | 是 | 是 | 未知 | 未知 | 是 |
CA Software Change Manager | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 未知 |
ClearCase | 部份[nb 16] | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是[20] | 未知 | 是 |
Code Co-op | 是 | 是 | 是 | 否 | 部份 | 否 | 否 | 否 | 是 | 未知 | 未知 | 未知 |
Codeville | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 |
CVS | 否 | 否 | 否 | 否 | 部份 | 否 | 否 | 是 | 是 | 未知 | 否 | 是 |
CVSNT | 是 | 是 | 是 | 是 | 是 | 否 | 是 | 是 | 是 | 是 | 是 | 是 |
darcs | 是 | 是 | 是 | 否[nb 17] | 是 | 是 | 不適用[nb 18] | 否 | 是 | 否 | 是[nb 19] | 未知 |
Dimensions CM | 是 | 是 | 是 | 否 | 是 | 未知 | 是 | 是 | 是 [nb 20] | 否 [nb 21] | 是 | 是 |
Fossil | 是 | 是 | 是 | 是 | 否 | 是 | 是 | 是[nb 22] | 是 | 是 | 是 | 未知 |
Git | 是 | 部份[nb 23] | 是 | 是 | 是 | 是[nb 24] | 是 | 是 | 是 | 是 | 是[nb 25] | 部份[nb 26] |
GNU arch | 是 | 是 | 未知 | 是 | 是 | 是 | 未知 | 未知 | 是 | 未知 | 未知 | 未知 |
IC Manage | 是 | 是 | 否 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 未知 | 未知 |
MKS Integrity | 是 | 是 | 是 | 否 | 是 | 是[nb 27] | 是[nb 28] | 是 | 是 | 是 | 是 | 未知 |
Mercurial | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是[nb 29] | 部份[nb 30] | 部份[21] |
Monotone | 是 | 是 | 是 | 否[nb 31] | 是 | 是,強制的 | 是 | 是 | 是 | 未知 | 是 | 未知 |
Perforce | 是 | 是[22] | 是[23] | 部份[nb 32] | 是 | 是 | 是[24] | 是 | 是 | 是[25] | 是[26] | 是 |
Rational Team Concert | 是 | 是 | 是 | 是 | 是[nb 33] | 是 | 是 | 是 | 是 | 是 | 是 | 未知 |
Source Code Control System | 是 | 否 | 不適用 | 不適用 | 否 | 否 | 是 | 否 | 否 | 部份[nb 34] | 是 | 是 |
StarTeam | 是[nb 35] | 是 | 未知 | 是 | 否 | 否 | 是 | 是 | 是 | 是 | 未知 | 是 |
Subversion | 是 | 是[nb 36] | 部份[nb 37] | 是 | 是 | 否 | 是[nb 38] | 是 | 部份[nb 39] | 是 | 是 | 是 |
Surround SCM | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是[27] | 是 | 是 | 是 |
SVK | 是 | 是 | 是 | 是 | 是[nb 40] | 是[28] | 是 | 是 | 是 | 是 | 未知 | 未知 |
Synergy | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是[nb 41] | 是 |
Team Foundation Server | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
Vault | 是 | 是 | 是 | 否 | 是 | 否 | 否 | 是 | 是 | 未知 | 未知 | 未知 |
Veracity | 是 | 是 | 是 | 是 | 是 | 否 | 是 | 是 | 是 | 否 | 是 | 是 |
Vesta | 是 | 是 | 未知 | 未知 | 是 | 否 | 否 | 否 | 是 | 否 | 未知 | 是 |
Visual SourceSafe | 否 | 否[nb 42] | 未知 | 否 | 是 | 否 | 否 | 未知 | 是 | 是 | 未知 | 未知 |
軟件 | 原子提交 | 文件重命名 | 合併文件重命名 | 符號鏈接 | 前/後事件觸發 | 簽名版本 | 合併跟蹤 |
換行轉換 | 標籤 | 國際化支持 | Unicode文件名支持 | 大庫支持 |
高級功能
表格說明
- 關鍵詞擴展:支持關鍵詞自動擴展,例如文件版本號。
- 交互式提交:交互式提交允許用戶對變化精挑細選,並決定哪些變化可以提交(未被選擇的變化只被保留為工作副本的變化),而不是只到文件級別的粒度。
- 外部引用:在源碼樹中嵌入外部庫。
- 部分檢出/複製:從庫中只檢出或複製特定子目錄的能力。
- 權限位:在版本歷史中跟蹤文件權限位。
- 保留時間戳:對於文件系統屬性中的最後修改時間,以提交時間覆蓋檢出時間。
- 用戶自動合併工具:自動合併可以嘗試通過用戶選擇的任何工具來進行(希望能以每個文件為基礎來配置)。
- 支持的格式:支持讀/寫,或者只讀(轉換,有可能再重複)。
- 共享所得目標的構建緩存:通過這一能力,如果其他協作用戶恰好共享了同樣的依賴,可以引入其他用戶構建的所得目標,而無需在本地重建它們。
軟件 | 關鍵詞擴展 | 交互式提交 | 外部引用 | 部分檢出/複製 | 權限位 | 保留時間戳 | 用戶自動合併工具 | 支持的格式 | 共享所得目標的構建緩存 |
---|---|---|---|---|---|---|---|---|---|
AccuRev SCM | 是 | 未知 | 是 | 是 | 僅執行位 | 是 | 是 | git(bi-dir)[29] | 否 |
GNU Bazaar | 是[30] | 是[31] | 是[32] | 否 | 僅執行位 | 否[nb 43] | 是[33] | bzr、subversion[34]、git[35]、hg[36]、任何有快速導出功能的 | 否 |
BitKeeper | POSIX和RCS | 是 | 是 | 是 | 是 | 是 | 是 | bitkeeper | 否 |
CA Software Change Manager | 否 | 是 | 否 | 是 | 僅執行位 | 是 | 是 | CA Software Change Manager | 否 |
ClearCase | 是[37] | 否 | 否 | 是 | 是 | 是[nb 44] | 是 | ClearCase | 是 |
CVS | RCS | 否 | 是 | 是[nb 45] | 部份[nb 46] | 是 | 否 | cvs | 否 |
CVSNT | RCS | 是[nb 47] | 是[nb 48] | 是[nb 49] | 是 | 是 | 否 | cvs | 是[nb 50] |
darcs | 否 | 是 | 否 | 否[nb 51] | 部份[nb 52] | 否 | 僅針對衝突 | darcs | 否 |
Dimensions CM | 是 | 否 | 是[nb 53] | 是 | 是 | 是 | 是 | 從ClearCase、Subversion、CVS、PVCS、ChangeMan DS遷移 | 未知 |
Fossil | 否 | 是 | 是[nb 54] | 否 | 僅執行位[38] | 否 | 否 | fossil(使用sqlite),任何有快速導出功能的[39] | 否 |
Git | 否[nb 55] | 是[nb 56] | 是[40] | 是[41] | 僅執行位 | 否[nb 57] | 是 | git、cvs、subversion、hg、任何有快速導出功能的 | 否 |
Mercurial | 是[42] | 是[43] | 是[44] | 部份[45] | 僅執行位 | 通過(alpha)擴展[46] | 僅非瑣碎的情況 | hg、subversion[47]、git[48]、任何被Convert擴展支持的其它格式[49] | 否 |
Perforce | 是[50] | 否 | 否 | 是 | 是 | 是[51] | 是[52] | Perforce | 否 |
Rational Team Concert | 否 | 是 | 是 | 是 | 是 | 未知 | 未知 | N/A | 否 |
Source Code Control System | 是 | 否 | 不適用 | 是 | 僅執行位 | 某些變體 | 否 | rcs | 否 |
Surround SCM | 是 | 否 | 否 | 是 | 否 | 是 | 是[nb 58] | Surround | 否 |
SVK | 是 | 是[nb 59] | 未知 | 是 | 未知 | 未知 | 未知 | subversion | 否 |
Subversion | 是[53] | 部份[nb 60] | 是[54] | 是 | 僅執行位 | 部份[nb 61] | 是[nb 62] | 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[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 | 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[nb 68] | clone | pull | 未知 | 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的庫本身是一個單獨的sqlite文件 | N/A |
Git | init / init --bare | clone / clone --bare | fetch[nb 70] | push | branch | checkout | pull | N/A | add | rm | mv | cp [然後] git add[nb 71] | merge | commit | revert | bundle | rebase |
Mercurial | init | clone | pull | push | bookmark[nb 72] | clone | pull -u | N/A | add | rm | mv | copy | merge | commit | revert | bundle | rebase[55] |
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[nb 73] | vrm | mv [然後] vcheckin[nb 74] | cp [然後] vcheckin[nb 75] | 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[nb 76] | 否 | admin -o[nb 77] | 有[nb 78] | annotate[nb 79] | 否 | 否[56] | 否 |
Darcs | 否 | 否 | revert / unrevert | unrecord | 有[nb 80] | test --bisect | pull / push --dry-run | 否 | record |
Fossil | 否 | 否 | stash pop / stash apply[nb 81] | merge --rollback | merge --cherrypick | bisect | 否 | search | 否 |
Git | [在「.gitconfig」文件中] | 否 | stash / stash pop[nb 82] | reset HEAD^ | cherry-pick | bisect | cherry | grep | add -p |
Mercurial | [在「.hgrc」文件中] | 否 | shelve / unshelve(附帶擴展[57]) | strip(附帶擴展[58]) | graft(核心[59])或transplant(附帶擴展[60]) | bisect | incoming / outgoing | grep | record(附帶擴展[61]) |
Monotone | [在monotonerc中] | 否 | 否 | kill_rev_locally[nb 83] | pluck | bisect | 否 | 否 | 未知 |
Perforce | 通過broker[62] | lock / unlock | shelve / unshelve | obliterate | integ[63] | 未知 | 未知 | grep | 未知 |
SVK | 否 | 否 | 否 | 否 | svk merge | 否 | status[nb 84] | 否 | 否 |
Subversion | 否 | lock / unlock | 否 | 否 | svnmerge cherry-picking | 第三方工具[nb 85] | status -u[nb 86] | 否 | 否 |
Surround SCM | 否 | checkout | shelf | rollback | duplicatechanges | 否 | diff | search | 否 |
Team Foundation Server | 是 | lock / unlock | shelve / unshelve | rollback | merge | 否 | 未知 | 未知 | 否 |
Veracity | 否 | lock / unlock[nb 87] | 否 | 否 | 否 | 否 | 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)界面[64] |
Mercurial | 包含[nb 88],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[65](包含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[66]、施樂、McAfee[67]、Polycom、閃迪[68]、西門子、索尼、賽門鐵克[69]、Thomson Financial、威瑞森無線[70]等等。 |
GNU Bazaar | 與baz有一定關係。由Canonical公司贊助。 | Ubuntu、Launchpad、KatchTV[71]。 |
BitKeeper | 受Sun WorkShop TeamWare影響 | Linux內核(2002–2005)及很多公司[72]。 |
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年進行演示,[73]隨後很快發布。 | |
CVS | 1986 首次被公開發布於1986年7月3日;基於RCS。 | |
CVSNT | 首次公開發布於1998年;基於CVS。由CVS開發者開始,目的是加入對更寬範圍的開發方法和過程的支持。 | 主要由專業人員(非業餘愛好者),例如:AnandTech[74]、Wachovia[75]、Wells Fargo[76]、Goldman Sachs[77]。 |
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軟件)為名發布。 | 洛克希德·馬丁、歐洲空間局、富士通商業通訊系統及許多全球性公司。[78] |
Fossil | Fossil和SQLite曾經在2007年7月21日以後使用Fossil。 | SQLite、Fossil、Tcl/Tk項目 |
Git | 林納斯·托瓦茲於2005年4月開始,隨着與BitKeeper的分歧。[79] | Linux內核、Android、Bugzilla、GNOME、GNU Emacs、GRUB2、KDE、MySQL、Perl 5[80]、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[81]、 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年。 | 許多全球性機構。[82] |
MKS Integrity | 最初由MKS軟件開發。2011年5月由PTC購買。[83] | 許多全球工程和IT組織。[84] |
Mercurial | 2005年4月6日由Matt Mackall開始,隨着與BitKeeper的分歧。[79]首次發布於2005年4月19日。 | Python[85]、Mozilla、OpenJDK、NetBeans、Xine、Xen、OpenSolaris、wmii、MoinMoin、Linux-HA、Pidgin、Gajim、Nginx、PyPy、SDL。 |
Monotone | 首次發布於2003年4月。 | CTWM、Xaraya、I2P[86]、Botan[87][88]。 |
Perforce | 由Perforce軟件公司開發,該公司由Christopher Seiwald於1995年建立。 | 許多全球性機構[89]、FreeBSD[90]、Google[91]。 |
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上編寫)[92],使用文本歷史文件的SCCSv4於1977年2月18日發布[93]。同樣的歷史文件格式在SCCS 5.0中繼續使用。[94] | 作為POSIX的代碼控制工具,SCCS被廣泛應用於UNIX平台,但並未被包含在許多Linux分發版本中。Sun WorkShop TeamWare使用SCCS文件。 |
StarTeam | 1.0版本於1995年[95]由StarBase軟件開發,StarBase後被Borland收購(Borland後被Micro Focus收購)。 | Borland、BT、Cintas、EDS、Kaiser Permanente、Met Office、Quest軟件、Raymond James、西門子及很多全球分布的公司。[96] |
Subversion | 於2000年由CVS開發者開始,目標是取代CVS。 | ASF、clang、gcc、SourceForge、FreeBSD、Google代碼、KDE(直到2011年)、PuTTY、Zope、Xiph、GnuPG、CUPS、Apache OpenOffice、TWiki、WebKit、應用於CodePlex及很多全球性機構。[97] |
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版本。 | 未知 |
軟件 | 歷史 | 知名用戶 |
參見
- 版本控制軟件列表
- 自由軟件託管服務比較
注釋
- ^ 在ClearCase中,可以設置觸發器來打開鎖定模式,這已經在很多地方使用。然而,ClearCase開發通常出現在個人分支,在這種情況下每個開發者擁有他們自己的分支,因此鎖定還是合併的併發模式關係不大。一旦開發者準備好將他們的代碼交付到項目中,代碼就被合併到主分支。
- ^ RTC不是分布式版本控制系統;但擁有某些分布式特徵可以配置
- ^ 原始的Unix源碼存在各種變體,但只有一個在持續維護
- ^ 當多個用戶同時編輯一個文件的同一個版本時,只有其中一個可以將變化寫回去。
- ^ SCCS的某些變體是免費軟件,而其它的則作為商業Unix分發的一部分保持封閉。
- ^ SVK允許Subversion擁有分布式分支。
- ^ 在Subversion中,一個文件屬性允許鎖定模式基於每個文件。
- ^ Bazaar的critical模塊是用Pyrex寫的。
- ^ Bazaar bundle是一個簡要的差異,有足夠的額外信息來保留歷史。
- ^ 二進制文件採用快照
- ^ sqlite3.c的為4 MB
- ^ Mercurial版本號是本地的;它們可以與庫中的不同,這取決於按什麼順序執行合併。
- ^ Monotone的版本代表變化集,它的清單代表快照,每個版本都鏈接到一些清單。但清單屬於遺留結構,他們不再被保存到數據庫中,也不能在需要時重建。現在真正的工作發生在rosters中,它是混合的快照/變化集結構。
- ^ Veracity版本號是本地的;它們可以與庫中的不同,這取決於按什麼順序執行合併。
- ^ 邪惡分身是常事。邪惡分身在SCM,而不是好萊塢 網際網路檔案館的存檔,存檔日期2013-10-16.(英文)
- ^ 原子提交可以實現於個別檢入ClearCase 7.1.1發布說明(英文)。
- ^ 見FAQ (頁面存檔備份,存於網際網路檔案館)(英文)
- ^ darcs的每個補丁具有一個唯一標識符,不可能兩次將同一個補丁合併到庫中(除非使用「不安全」命令破壞性地修改歷史)。
- ^ 儘管它存儲(及默認顯示)使用8位文件名。見FAQ (頁面存檔備份,存於網際網路檔案館)(英文)
- ^ 使用單項版本屬性(「單項工作」演示,覆蓋用戶定義屬性 (頁面存檔備份,存於網際網路檔案館)(英文))。
- ^ 它的消息和圖形界面只有英語本地化,儘管軟件被驗證可以很好地運行在不同語言的操作系統上。
- ^ 由「crnl-glob」設置來控制([1] (頁面存檔備份,存於網際網路檔案館)(英文))
- ^ Git不明確地跟蹤重命名,因為從設計上它不跟蹤個別文件。重命名和拆分源文件時,如果文件內容不發生顯著變化,則會被檢測到。
- ^ 從git-1.7.9以後(見release notes Archive.is的存檔,存檔日期2013-04-15(英文))。更老的版本不對提交簽名,僅標籤(見git標籤(1)手冊頁 (頁面存檔備份,存於網際網路檔案館)(英文)中的-s選項)
- ^ 自1.7.10版本起支持UTF-8文件名(MSysGit發布說明(英文))。
- ^ 對於非常大的庫,Git存在一些問題。見SoC 2012 Ideas (頁面存檔備份,存於網際網路檔案館)(英文)中「更好的大文件支持」一節和「設計一個更快的索引格式」一節。
- ^ 完全允許變化包提供全部工作流,21 CFR Part 11服從基於單項控制變化包的數字簽名。
- ^ 2009 SP5加入了一項功能來合併子開發路徑。
- ^ Mercurial正在進行翻譯,目標語言至少包括荷蘭語和漢語
- ^ 支持對主機操作系統的依賴,對Unix支持得很好,但對Windows操作系統支持得不好。見[2] (頁面存檔備份,存於網際網路檔案館)(英文)
- ^ 可以通過用戶級鈎子實現
- ^ Perforce將對符號鏈接本身進行版本控制,但如果您通過符號鏈接訪問它們,並不會識別出它自己的被版本控制的視圖(本地文件樹)。
- ^ 貫穿過程行為組件:操作顧問好操作參與者。http://jazz.net/library/article/292(英文) (頁面存檔備份,存於網際網路檔案館)
- ^ 雖然SCCS的源碼是按支持國際化寫的,但實際上只有英語的消息。
- ^ 從2006版之後支持
- ^ 當且僅當移動的目標文件與源文件在同一個Subversion庫中,Subversion可以移動一個文件並保存它的歷史。跨庫的移動需要用第三方工具,比如svk。
- ^ 從SVN 1.8開始,subversion在客戶端支持改進的移動跟蹤。在服務器端仍然不支持。
- ^ SVN 1.5新加入 (頁面存檔備份,存於網際網路檔案館)(英文)。單獨工具「svnmerge[永久失效連結]」(英文)提供對舊版本的合併跟蹤。
- ^ 在Subversion中,標籤是Subversion更通用的「低代價複製」概念的一個特例。按照約定,標籤是一個副本,它會進入一個叫做「tags」的目錄。因此,標籤也是被納入版本管理的。更多信息參見[3] (頁面存檔備份,存於網際網路檔案館)(英文)。表格中部分支持的原因是,Subversion實現標籤的這種方式並不符合以下要求——標籤名可以被用來代替任何版本標識符,無論用戶在哪兒都可以訪問。如果定義被放鬆到包含Subversion的接近程度,這一列就會變得無意義——象每一種版本控制系統都支持分支,因此也支持標籤一樣。
- ^ 使用subversion服務器
- ^ v6.6a到v7.1a在亞洲版,從v7.2開始在通用版
- ^ 重命名時移除版本改變歷史;舊名字不再被引用。
- ^ 仍 (頁面存檔備份,存於網際網路檔案館)(英文)未實現
- ^ 不能在動態視圖中禁用。
- ^ 使用CVSROOT/modules文件的別名。
- ^ 當加入一個文件時,CVS會記錄它的執行位,但並被允許在之後改變它。
- ^ 這是一個GUI功能,它是通過TortoiseCVS和WinCVS來支持的,它們都包含/使用CVSNT。
- ^ 和CVS一樣,並增加了複製庫(包括「影子」庫)的能力。
- ^ 使用模塊/目錄名或別名來創建,使用CVSROOT/modules或CVSROOT/modules2管理文件。
- ^ 要求所使用的構建工具也支持。
- ^ Darcs可以從明確的檢查點部分檢出,但這隻適用於darcs-1庫,而被適用於darcs-2庫。[來源請求]
- ^ Darcs可以自動檢測#!腳本,並在檢出時使它們可執行。
- ^ 使用子項目功能(文檔包 | 用戶指南 | 將一個項目或流關聯到其它對象 (頁面存檔備份,存於網際網路檔案館)(英文))。
- ^ 可以嵌套檢出,命令為「fossil open --nested」
- ^ Git FAQ (頁面存檔備份,存於網際網路檔案館)(英文)聲明,關鍵詞擴展不是一件好事
- ^ add -i和add -p,參見git-add(1)指南頁面 (頁面存檔備份,存於網際網路檔案館)(英文)
- ^ Git FAQ (頁面存檔備份,存於網際網路檔案館)(英文)解釋,為什麼經過深思熟慮,認為保留修改時間是有害的。
- ^ 在服務器端可以作為項目選項配置,在客戶端可以作為用戶選項配置。
- ^ commit --interactive,參見SVK::命令::提交 (頁面存檔備份,存於網際網路檔案館)(英文)
- ^ 通過第三方工具,如Tortoise SVN。
- ^ SVN不能保留文件修改時間。如果客戶端要求,它可以恢復檢入時間作為最後修改時間。默認不支持。
- ^ 文件的MIME類型必須被檢測為一個「人類可讀」的MIME類型,即使合併工具可以與非人類可讀的文件一起工作。
- ^ 独立分支, [2016-06-17], (原始內容存檔於2016-03-04)
- ^ 共享库, [2016-06-17], (原始內容存檔於2016-03-04)
- ^ 独立分支, [2016-06-17], (原始內容存檔於2016-03-04)
- ^ 重量级检出和轻量级检出, [2016-06-17], (原始內容存檔於2016-06-30)
- ^ 重定位插件
- ^ darcs沒有命名的分支,不管是否在本地,分支都是通過克隆庫來單獨處理的
- ^ darcs send準備一組補丁,默認通過郵件發送,但也可以發送到一個文件
- ^ pull是fetch加merge
- ^ 拷貝在這之後被檢測到,很象重命名
- ^ Mercurial書籤 (頁面存檔備份,存於網際網路檔案館)(英文)類似於本地分支
- ^ 通過任何方法,先把要設為不可變的文件放在一個不可變目錄里,再vcheckin。
- ^ 先把不可變文件從它的原始目錄mv或link到它的目的不可變目錄,再vcheckin。
- ^ 通過任何方法,先把不可變文件從它的原始目錄拷貝到它的目的不可變目錄,再vcheckin。
- ^ 您也可以啟用它,在庫服務器控制面板或配置文件中,作為一個主要的偏好
- ^ 要求管理員權限。您可以使用「cvs update –e –j @commitid –j "@<commitid"」將一個變化「回滾」,但該變化和回滾會在歷史中留下痕跡
- ^ 使用TortoiseCVS或WinCVS來提交變化到目標服務器並選擇保留哪個文件
- ^ 二分檢索可用於cvs,因此也可用於CVSNT
- ^ darcs對補丁操作,而不是對修訂,在把一個給定的補丁從一個庫拉到另一個時,挑選組成部分比較簡單,只要依賴被滿足
- ^ fossil stash支持藉助注釋來進行多個擱置
- ^ git stash是一個多級擱置,它可以同時擱置多個變化集
- ^ 僅當工作在本地庫且沒有子版本時。disapprove命令也許可以替代。
- ^ svk狀態列表用於在工作副本和庫之間比較,而不是在兩個庫之間比較
- ^ SVN二分檢索工具svn-bisect. [2016-06-27]. (原始內容存檔於2016-08-16) (英語).
- ^ svn狀態列表用於在工作副本和庫之間比較,而不是在兩個庫之間比較
- ^ 鎖是報告形式的,在非連接狀態下,不能強制執行
- ^ 單庫訪問用hgweb,多庫從一個HTTP地址訪問用hgwebdir
參考文獻
- ^ CVS团队成员列表, 非GNU Savannah, GNU項目, [2016-06-13], (原始內容存檔於2016-03-04) (英語)
- ^ CVS Pro, March Hare, [2016-06-13], (原始內容存檔於2016-06-10) (英語)
- ^ Computer Associates, [2016-06-13], (原始內容存檔於2015-11-18) (英語)
- ^ 开始使用免费的Perforce!, Perforce, (原始內容存檔於2013-01-26) (英語)
- ^ 许可证的选择, Perforce, (原始內容存檔於2012-01-12) (英語)
- ^ 许可证及价格, PlasticSCM, [2016-06-13], (原始內容存檔於2014-12-10) (英語)
- ^ 分布式版本控制系统(DVCS)Comparisons(原文如此). Jazz Forums.[永久失效連結]
- ^ Jean-Michel Lemieux, 下一版Rational Team Concert倒计时:第II部分 – 源码控制增强, Jazz社區, [2016-06-13], (原始內容存檔於2015-09-10)
- ^ Apache软件基金会, [2016-06-13], (原始內容存檔於2011-03-19) (英語)
- ^ Rational Synergy, IBM
- ^ Vesta配置管理系统, Sourceforge, [2016-06-13], (原始內容存檔於2016-03-10)
- ^ Vesta配置管理系统, Vesta, [2020-09-14], (原始內容存檔於2020-09-09)
- ^ IBM – Rational ClearCase – 美国, [2016-06-13], (原始內容存檔於2016-06-01)(英文)
- ^ 变化集. March Hare軟件公司. [2012年5月8日]. (原始內容存檔於2012年5月11日).(英文)
- ^ Git服务器协议, [2016-06-13], (原始內容存檔於2014-10-06)
- ^ 存档副本 (PDF). [2012-01-12]. (原始內容 (PDF)存檔於2011-11-13).
- ^ SCM新闻 – Kronos将软件配置管理转向AccuRev. AccuRev. 2004年4月26日 [2014年1月26日]. (原始內容存檔於2014年2月2日).(英文)
- ^ 为跨平台的异地团队提高性能和可扩展性. AccuRev. 2008年9月23日 [2014年1月26日]. (原始內容存檔於2014年2月2日).(英文)
- ^ bzr从1.14起支持换行符转换. Doc.bazaar-vcs.org. [2014-01-26]. (原始內容存檔於2009-04-13).(英文)
- ^ 本國語言和ClearCase的支持策略(英文),來自IBM支持
- ^ 大文件擴展 (頁面存檔備份,存於網際網路檔案館)(英文)(從Hg Rev.:2.0以後)
- ^ [4] 網際網路檔案館的存檔,存檔日期2014-02-10.(英文)來自Perforce用戶指南
- ^ [5] 網際網路檔案館的存檔,存檔日期2014-02-09.(英文)來自Perforce用戶指南
- ^ Perforce公共知识库 – 首页. Perforce.com. [2014年1月26日]. (原始內容存檔於2007年8月14日).(英文)
- ^ Perforce知识库:国际化和本地化. Kb.perforce.com. 2010年10月21日 [2014年1月26日]. (原始內容存檔於2012年2月8日).(英文)
- ^ Perforce知识库:国际化和本地化. Kb.perforce.com. 2010年10月21日 [2014年1月26日]. (原始內容存檔於2013年1月30日).(英文)
- ^ Seapine軟件發布Surround SCM 2009 (頁面存檔備份,存於網際網路檔案館)(英文)
- ^ 簽名 (頁面存檔備份,存於網際網路檔案館)(英文) – SVK Wiki
- ^ 企业级GitCentric | AccuRevGit. Accurev.com. [2014年1月26日]. (原始內容存檔於2012年10月17日).(英文)
- ^ Bazaar关键词插件. Wiki.bazaar.canonical.com. 2005年9月5日 [2014年1月26日]. (原始內容存檔於2014年2月1日).(英文)
- ^ Bazaar交互插件. Launchpad.net. [2014年1月26日]. (原始內容存檔於2014年2月1日).(英文)
- ^ Bazaar外部插件. Launchpad.net. [2014年1月26日]. (原始內容存檔於2014年2月3日).(英文)
- ^ 对给定的扩展名忽略合并操作. [2016-06-16]. (原始內容存檔於2016-03-04).(英文)
- ^ bzr-svn. Launchpad.net. [2014年1月26日]. (原始內容存檔於2013年11月11日).(英文)
- ^ bzr-git. Launchpad.net. [2014年1月26日]. (原始內容存檔於2013年11月11日).(英文)
- ^ bzr-hg. Launchpad.net. [2014年1月26日]. (原始內容存檔於2014年4月2日).(英文)
- ^ IBM DeveloperWorks文章《IBM Rational ClearCase:最好的十種觸發器 (頁面存檔備份,存於網際網路檔案館)》(英文)
- ^ 清單 (頁面存檔備份,存於網際網路檔案館)(英文),Fossil文件格式
- ^ Fossil导入和导出. Fossil-scm.org. 2014年1月22日 [2014年1月26日]. (原始內容存檔於2014年2月2日).(英文)
- ^ git-submodule(1)指南页面. Kernel.org. 2013年2月15日 [2014年1月26日]. (原始內容存檔於2014年2月2日).(英文)
- ^ git-read-tree(1)指南页面. kernel.org. 2014年8月24日 [2014年1月24日]. (原始內容存檔於2014年1月22日).(英文)
- ^ Mercurial关键词扩展页面. Mercurial-scm.org. [2014年1月26日]. (原始內容存檔於2016年3月10日).(英文)
- ^ Mercurial记录扩展页面. Mercurial-scm.org. 2013年8月27日 [2014年1月26日]. (原始內容存檔於2016年4月6日).(英文)
- ^ 子库 – Mercurial. Mercurial-scm.org. [2016年4月22日]. (原始內容存檔於2021年5月13日).(英文)
- ^ 子库 – Mercurial. Mercurial-scm.org. 2013年9月3日 [2014年1月26日]. (原始內容存檔於2021年5月13日).
- ^ Mercurial时间戳扩展. Mercurial-scm.org. 2012年4月24日 [2014年1月26日]. (原始內容存檔於2016年3月7日).(英文)
- ^ hgsubversion页. Mercurial-scm.org. 2013年8月28日 [2014年1月26日]. (原始內容存檔於2016年1月30日).(英文)
- ^ Hg-Git Mercurial插件. Hg-git.github.com. [2014年1月26日]. (原始內容存檔於2013年3月16日).(英文)
- ^ Mercurial转换扩展页面. Mercurial-scm.org. 2013年11月29日 [2014年1月26日]. (原始內容存檔於2016年2月16日).(英文)
- ^ P4用户指南. Perforce. [2014年9月18日]. (原始內容存檔於2014年10月22日).(英文)
- ^ P4用户指南. Perforce. [2014年9月18日]. (原始內容存檔於2014年10月15日).(英文)
- ^ P4用户指南. Perforce. [2014年9月18日]. (原始內容存檔於2014年10月15日).(英文)
- ^ 关键词替换. Svnbook.red-bean.com. [2014年1月26日]. (原始內容存檔於2013年9月3日).(英文)
- ^ 外部定义. Svnbook.red-bean.com. [2014年1月26日]. (原始內容存檔於2013年9月28日).(英文)
- ^ Mercurial重定位. Mercurial-scm.org. 2012年10月25日 [2014年4月23日]. (原始內容存檔於2016年1月22日).(英文)
- ^ 故障6463 – enh:检索库. [2012年5月8日] (英語).
- ^ Mercurial搁置扩展页. Mercurial-scm.org. 2013年11月7日 [2014年1月26日]. (原始內容存檔於2016年1月21日) (英語).
- ^ Mercurial回滚扩展页. Mercurial-scm.org. [2016年5月11日]. (原始內容存檔於2016年5月13日) (英語).
- ^ graft -core命令(从Hg Rev.2.0开始). Selenic.com. [2014年1月26日]. (原始內容存檔於2014年2月1日) (英語).
- ^ Mercurial迁移扩展页. Mercurial-scm.org. 2012年5月12日 [2014年1月26日]. (原始內容存檔於2016年6月17日) (英語).
- ^ Mercurial记录扩展页. Mercurial-scm.org. 2013年8月27日 [2014年1月26日]. (原始內容存檔於2016年4月6日) (英語).
- ^ Perforce Broker. Perforce.com. [2014年1月26日]. (原始內容存檔於2013年11月16日) (英語).
- ^ Perforce知识库:“Cherry Picking”集成. Kb.perforce.com. 1990年1月1日 [2014年1月26日]. (原始內容存檔於2012年3月9日) (英語).
- ^ 支持的集成——PTC集成. Mks.com. 2012年9月10日 [2014年1月26日]. (原始內容存檔於2012年7月25日).(英文)
- ^ La Chose : web agency and software maker – agence web et développement de logiciels (頁面存檔備份,存於網際網路檔案館)(英文)
- ^ 当SCM遇见Web 2.0 – Orbitz的酷程序 | 软件发配置管理和敏捷软件开发. Accurev.com. [2014年1月26日]. (原始內容存檔於2014年2月2日) (英語).
- ^ McAfee网页服务团队采纳建议,每年节省了$500,000. AccuRev. [2014年1月26日]. (原始內容存檔於2014年2月2日) (英語).
- ^ 闪迪使用AccuRev SCM软件获得竞争优势. AccuRev. [2014年1月26日]. (原始內容存檔於2014年2月2日) (英語).
- ^ 赛门铁克通过迁移实现重大收获. AccuRev. [2014年1月26日]. (原始內容存檔於2014年2月2日) (英語).
- ^ 在线会议 – 威瑞森无线如何克服障碍,使交付软件更迅速. Accurev.com. 2011年6月1日 [2014年1月26日]. (原始內容存檔於2012年11月20日) (英語).
- ^ 谁使用Bzr. Bazaar-vcs.org. 2005年9月21日 [2014年1月26日]. (原始內容存檔於2012年3月28日) (英語).
- ^ 大规模分布式软件配置管理系统. BitKeeper. [2014年1月26日]. (原始內容存檔於2014年2月28日) (英語).
- ^ 分布式源码控制系统. Portal.acm.org. 1997年5月18日 [2014年1月26日] (英語).
- ^ 如何在Windows上建立源码控制而不需要花一毛钱。. AnandTech. [2012年5月8日]. (原始內容存檔於2012年5月4日) (英語).
- ^ 结合包含所有文件的标签和只包含一个子集的标签. [2012年5月8日]. (原始內容存檔於2008年8月28日) (英語).
- ^ 可以很快从unix客户端连接到CVSNT. [2016-06-13]. (原始內容存檔於2016-09-16) (英語).
- ^ gserver客户端错误. [2012年5月8日]. (原始內容存檔於2015年6月20日) (英語).
- ^ Serena軟件的客戶 (頁面存檔備份,存於網際網路檔案館)(英文)
- ^ 79.0 79.1 迈向更好的SCM:Revlogs和Mercurial (PDF). 2006年7月. (原始內容 (PDF)存檔於2012-02-13) (英語).
由Matt Mackall於渥太華Linux座談會提出
- ^ 得到Perl源码并用它工作. dev.perl.org. [2014年1月26日]. (原始內容存檔於2014年2月4日) (英語).
- ^ Git. MediaWiki. [2012年8月1日]. (原始內容存檔於2012年5月16日) (英語).
- ^ IC Manage:工业级数据管理. (原始內容存檔於2009-05-03) (英語).
- ^ PTC使用MKS Integrity产物 — PTC Integrity为软硬件开发生命周期管理设置了新标准. Mks.com. [2014年1月26日]. (原始內容存檔於2011年6月13日) (英語).
- ^ 客户 — PTC Integrity. Mks.com. [2014年1月26日]. (原始內容存檔於2011年3月20日) (英語).
- ^ 转向前进. Python.org. [2014年1月26日]. (原始內容存檔於2014年1月22日) (英語).
- ^ 取得I2P代码. geti2p.net. [2014年7月3日]. (原始內容存檔於2014年7月1日) (英語).
- ^ 访问版本控制. botan.randombit.net. 2014年5月26日 [2014年7月3日]. (原始內容存檔於2014年7月14日) (英語).
- ^ 使用Monotone的项目. wiki.monotone.ca. 2011年2月6日 [2014年7月3日]. (原始內容存檔於2014年7月3日) (英語).
- ^ 存档副本. [2006-07-02]. (原始內容存檔於2006-06-15).(英文)
- ^ Perforce用于FreeBSD开发. (原始內容存檔於2016-04-29) (英語).
- ^ [6] (頁面存檔備份,存於網際網路檔案館)(英文)
- ^ Rochkind, Marc J., 源码控制系统 (PDF), IEEE對軟件工程的匯報 SE–1 (4), 1975年12月, SE–1 (4): 364–370 [2016-06-13], (原始內容存檔 (PDF)於2011-05-25)(英文)
- ^ PWB UNIX产品声明. (原始內容存檔於2021-07-14) (英語).
- ^ 比較SCCS 4文件格式 (頁面存檔備份,存於網際網路檔案館)和SCCS 5.0文件格式 網際網路檔案館的存檔,存檔日期2014-08-19.(作為sccsfile 4的幫助文件),見存档副本. [2014-08-17]. (原始內容存檔於2014-08-19).
- ^ Starteam®. (原始內容存檔於1998-05-07) (英語).
- ^ 客户一览. (原始內容存檔於2007-08-10) (英語).
- ^ 存档副本. [2006-05-30]. (原始內容存檔於2006-06-13).(英文)