版本控制軟件比較
以下是版本控制軟件比較。下表包括知名的版本控制和軟件組態管理(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、SanDisk[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).(英文)