版本控制软件比较

维基媒体列表条目

以下是版本控制软件比较。下表包括知名的版本控制软件配置管理(SCM)软件的一般信息和技术信息。对不适用源代码的SCM软件,见开源配置管理软件比较英语Comparison of open-source configuration management software

一般信息 编辑

表格说明

  • 库模式表示源码库各个副本之间的关系。在一个主从式架构中,用户通过客户端访问总库;一般而言,他们本地机器只保存项目树的一个工作副本。工作副本的变化必须提交到总库之后才能反映给其他用户。而在分布式架构中,库之间是平等的,用户一般除了他们的工作副本之外,还有本地库来存放版本历史。
  • 并发模式表示如何管理工作副本的变化,以防止同时编辑造成库中的数据混乱。在锁定模式下,只有用户从总库请求并得到了一个文件的排他锁,才允许改变文件。在合并模式下,用户可以自由编辑文件,但当他们提交变化到总库时会被告知可能存在冲突,随后版本控制系统可能会对双方合并这些变化,或者当发生冲突时让用户来决定。注意,分布式版本控制几乎都是合并的并发模式。
软件 维护者 开发状态 库模式 并发模式 许可证 平台支持 费用
AccuRev SCM英语AccuRev SCM Micro Focus International 活跃 主从式 合并或锁定 专有 大部分Java平台(类Unix系统WindowsOS X 付费($350/人)
GNU Bazaar Canonical公司 活跃 分布式主从式 合并 GNU GPL 类Unix系统WindowsOS X 免费
BitKeeper BitMover公司 活跃 分布式 合并 Apache 类Unix系统WindowsOS X 免费
ClearCase英语ClearCase IBM Rational英语Rational 软件 活跃 主从式 合并或锁定[nb 1] 专有 LinuxWindowsAIXSolarisHP-UX、i5/OS、OS/390、z/OS 付费($4600/浮动许可证)(每个用户自动持有至少30分钟,可以手动释放)
Code Co-op英语Code Co-op Reliable软件 活跃 分布式 合并 专有 Windows 付费($150/人)
Codeville英语Codeville Ross Cohen 官方网站已下线;最新版本为2007年7月13日 分布式 精确codeville合并 BSD 类Unix系统WindowsOS X 免费
CVS CVS团队[1] 维护但不增加新功能 主从式 Merge GNU GPL 类Unix系统WindowsOS X 免费
CVSNT英语CVSNT March Hare软件[2]及社区成员 维护且新功能开发中 主从式 Merge or lock GPL或专有 类Unix系统WindowsOS X、i5/OS 老版本免费(有£425配送费),CVS Suite或Change Management Server最新版本的商业许可证£85
darcs英语darcs Darcs团队 活跃 分布式 合并 GNU GPL 类Unix系统WindowsOS X 免费
Dimensions CM英语Dimensions CM Serena软件英语Serena Software 活跃 主从式 合并或锁定 专有 WindowsLinuxSolarisAIXHP UX、z/OS 付费
Endevor英语Endevor CA公司[3] 活跃 主从式 合并或锁定 专有 z/OS 付费
Fossil D. Richard Hipp英语D. Richard Hipp 活跃 分布式 合并 BSD POSIX、WindowsOS X及其它 免费
Git 滨野纯 活跃 分布式 合并 GNU GPL POSIXWindowsOS X 免费
GNU arch Andy Tai 不维护 分布式 Merge GNU GPL 类Unix系统WindowsOS X 免费
IC Manage IC Manage公司 活跃 主从式 合并或锁定 专有 类Unix系统WindowsOS X 付费(商业的)
MKS Integrity英语MKS Integrity Integrity,PTC的子公司 活跃 主从式 合并或锁定 专有 类Unix系统Windows 付费
Mercurial Matt Mackall 活跃 分布式 合并 GNU GPL 类Unix系统WindowsOS X 免费
Monotone Nathaniel Smith, Graydon Hoare 活跃 分布式 合并 GNU GPL 类Unix系统WindowsOS X 免费
Perforce Perforce软件公司 活跃 主从式 合并或锁定 专有 类Unix系统WindowsOS X 可以申请获得免费许可证,限开源或学习用途;也可以免费供最多20个用户、20个工作区使用,不限制文件数;[4]或者免费供最多1,000个文件使用,不限制用户数;否则$740–$900/人永久使用,或者$144–$300/人/年订阅,量大优惠[5]
Plastic SCM Codice软件 活跃 主从式 合并或锁定 专有 LinuxWindowsOS X 免费供最多15个用户;否则$595/人起,或者$3,500/25人/年[6]
PVCS Serena软件 活跃 主从式 锁定 专有 Windows类Unix系统 付费
Rational Team Concert英语IBM Rational Team Concert IBM Rational英语Rational Software 活跃 主从式[nb 2][7][8] 合并或锁定 专有 LinuxWindowsAIXSolarisHP-UX、i5/OS、OS/390、z/OS、OS X 免费供最多10人使用;否则不免费
Revision Control System Thien-Thi Nguyen 活跃 本地 合并或锁定 GNU GPL 类Unix系统 免费
SCM Anywhere Dynamsoft英语Dynamsoft公司 活跃 主从式 合并或锁定 专有 类Unix系统WindowsOS X 付费(单用户免费;$299/人,量大优惠)
Source Code Control System Jörg Schilling[nb 3] 活跃 本地 锁定[nb 4] CDDL / proprietary[nb 5] 类Unix系统WindowsOS X 习惯上,SCCS被捆绑进商业UNIX分发,也存在免费的CDDL-许可证版本
StarTeam英语StarTeam BorlandMicro Focus英语Micro Focus International 活跃 主从式 合并或锁定 专有 Windows并通过Java客户端跨平台 付费(Quoted on an individual basis)
Subversion(SVN) Apache软件基金会[9] 活跃 主从式[nb 6] 合并或锁定[nb 7] Apache 类Unix系统WindowsOS X 免费
Surround SCM英语Surround SCM Seapine软件英语Seapine Software 活跃 主从式 合并或锁定 专有 LinuxWindowsOS X 付费($595/人;订阅$29/月)
SVK Best Practical 不维护 主从式,去中心化的 Merge Artistic/GPL 类Unix系统WindowsOS X 免费
Team Foundation Server(TFS) 微软 活跃 主从式分布式 合并或锁定 专有 Windows,通过Visual Studio Team Services跨平台 免费供最多5个用户在Visual Studio Team Services中或者通过codeplex.com上的开源项目使用;否则不免费,通过MSDN订阅或直接购买许可证
Synergy英语Telelogic Synergy IBM Rational英语Rational Software 活跃 主从式分布式 合并或锁定 专有 LinuxWindows类Unix系统 付费(联系IBM Rational[10]
Vault英语Vault (revision control system) SourceGear LLC 活跃 主从式 合并或锁定 专有 类Unix系统LinuxWindows 付费($300/人)
Veracity英语Veracity (software) SourceGear LLC 网站显示不维护;最新版本2013年3月25日  (2013-03-25) 分布式 Merge or lock Apache 类Unix系统LinuxWindows 免费
Vesta英语Vesta (Software configuration management) 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英语AccuRev SCM C++Java 变化集 文件 数字对:NN/NN 自定义 未知
GNU Bazaar Python、Pyrex、C[nb 8] 快照 伪随机 自定义、基于ssh自定义、基于HTTP自定义、HTTPSFTPFTP、邮件bundle[nb 9]、WebDAV(需要插件) 4.1 MB
BitKeeper C 变化集 变化集的键、数字 自定义、HTTPrshssh、邮件 99 MB
CA Software Change Manager英语CA Software Change Manager CC++Java、HTML 变化集和快照 文件和树[來源請求] 数字 HTTP、TCP/IP 未知
ClearCase英语ClearCase CJavaPerl 变化集 文件和树[13] 数字 自定义(CCFS)、自定义(MVFS文件系统驱动器)、HTTP 未知
Code Co-op英语Code Co-op C++ 变化集 未知 用户ID-序列号 电子邮件(MAPI、SMTP/POP3Gmail)、LAN 未知
Codeville英语Codeville Python 未知 未知 未知 未知 未知
CVS C 变化集 文件 数字 pserver、ssh 3.3 MB
CVSNT英语CVSNT C++ 变化集 文件和树[14] 数字 基于ssh、sspi、sserver、gserver、pserver自定义 55 MB
darcs英语darcs Haskell 变化集(补丁)[nb 10] n/a 基于sshHTTP、邮件自定义 1.7 MB
Dimensions CM英语Dimensions CM CC++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 PythonC 变化集 数字、[nb 12]SHA-1散列 基于ssh自定义、HTTP、邮件bundles(有标准插件) 20 MB
MKS Integrity英语MKS Integrity CJava 变化集 文件 数字 自定义、HTTP 未知
Monotone C++ 混合[nb 13] SHA-1散列 自定义(netsync)、基于ssh自定义、文件系统 4.4 MB
Perforce英语Perforce C++C、LabVIEW 变化集 数字 自定义 未知
PVCS英语PVCS C++C 变化集 文件 数字 未知 未知
Rational Team Concert英语IBM Rational Team Concert Java 变化集 数字 基于HTTP/HTTPS的REST服务 未知
Revision Control System英语Revision Control System C 变化集 文件 数字 文件系统 5.3 MB
SCM Anywhere英语SCM Anywhere C++Java、C# 变化集 文件和树 数字 基于HTTP/HTTPS的SOAP 未知
Source Code Control System英语Source Code Control System C 变化集 文件 Numbers NFS 1.3 MB
StarTeam英语StarTeam C++CJava 快照 文件和树 MD5散列 自定义、TCP/IP 未知
Subversion C 变化集和快照 数字 自定义(svn)、基于ssh自定义、HTTP和SSL(使用WebDAV) 5.2 MB
Surround SCM英语Surround SCM C++ 变化集 文件和树 数字 TCP/IP 未知
SVK Perl 变化集 数字 未知 未知
Synergy英语Telelogic Synergy Java 变化集(文本)/快照(二进制) 文件 数字 自定义、基于ssh自定义、HTTP
Team Foundation Server C++和[C♯|C#] 变化集 文件和树 数字 基于HTTP/HTTPS的SOAP 未知
Vault英语Vault C#] 变化集 文件和树 数字 HTTP、HTTPS 未知
Veracity英语Veracity C、JavaScript 变化集 数字、[nb 14]SHA-1、SHA-2和Skein散列 HTTP 52 MB
Vesta英语Vesta C++ 快照 未知 NFS 15.8 MB
Visual SourceSafe C 快照 文件 数字 SMB、DCOM 未知
软件 编程语言 存储方法 变化范围 版本号 网络传输协议 源码体积

功能 编辑

表格说明

  • 软件:应用的名称。
  • 原子提交:保证所有的改变都提交成功或者都不成功。
  • 文件重命名:表示系统是否允许文件在改名后仍然保留他们的版本历史。
  • 合并文件重命名:表示系统是否能够将一个分支上的文件变化合并到另一个分支上已重命名的同一个文件上(或者相反)。 如果同一个文件在两个分支上都已经重命名,则产生重命名冲突,必须由用户来解决。
  • 符号链接:表示一个系统是否允许象普通文件一样对符号链接进行版本控制。 对符号链接的版本控制,某些人认为是一项功能,而另一些人则认为存在安全隐患(例如,一个到/etc/passwd的符号链接)。符号链接只支持特定的平台,这取决于软件的实现。
  • 前/后事件触发:表示有能力在一个动作之前或之后触发命令,例如发生一个提交的动作。
  • 签名版本:指集成了版本的数字签名,例如以OpenPGP的格式。
  • 合并跟踪:表示一个系统是否记得在哪些版本之间合并了哪些变化,并且只合并那些从一个分支合并到另一个分支时丢失的变化。
  • 换行转换:表示一个系统是否能适配文本文件的换行符,从而匹配当前使用的操作系统的换行方式。控制变化的粒度,例如 Subversion,可以进行配置,依据文件类型来处理换行符的不同,而Perforce根据一个单一、每个客户端的配置转换所有的文本文件。
  • 标签:表示是否可以给一个特定版本赋予一个带有含意的名字,无论这些名字被叫做标记还是标签。
  • 国际化支持:表示该软件是否支持多语言环境和多操作系统。
  • Unicode文件名支持:表示该软件是否支持使用不同[[字符编码]]的文件系统之间的互操作。
  • 大库支持:系统能高效处理十亿字节左右或更大的库吗?
软件 原子提交 文件重命名 合并文件重命名 符号链接 前/后事件触发 签名版本
合并跟踪 换行转换 标签 国际化支持 Unicode文件名支持 大库支持
AccuRev SCM英语AccuRev SCM 部份[nb 15] 不適用 [16] [17][18]
GNU Bazaar [19] 未知
BitKeeper 未知 未知 未知
CA Software Change Manager英语CA Software Change Manager 未知
ClearCase英语ClearCase 部份[nb 16] [20] 未知
Code Co-op英语Code Co-op 部份 未知 未知 未知
Codeville英语Codeville 未知 未知 未知 未知 未知 未知 未知 未知 未知 未知 未知 未知
CVS 部份 未知
CVSNT英语CVSNT
darcs英语darcs [nb 17] 不適用[nb 18] [nb 19] 未知
Dimensions CM英语Dimensions CM 未知 [nb 20] [nb 21]
Fossil [nb 22] 未知
Git 部份[nb 23] [nb 24] [nb 25] 部份[nb 26]
GNU arch 未知 未知 未知 未知 未知 未知
IC Manage 未知 未知
MKS Integrity英语MKS Integrity [nb 27] [nb 28] 未知
Mercurial [nb 29] 部份[nb 30] 部份[21]
Monotone [nb 31] 是,强制的 未知 未知
Perforce英语Perforce [22] [23] 部份[nb 32] [24] [25] [26]
Rational Team Concert英语IBM Rational Team Concert [nb 33] 未知
Source Code Control System英语Source Code Control System 不適用 不適用 部份[nb 34]
StarTeam英语StarTeam [nb 35] 未知 未知
Subversion [nb 36] 部份[nb 37] [nb 38] 部份[nb 39]
Surround SCM英语Surround SCM [27]
SVK [nb 40] [28] 未知 未知
Synergy英语Telelogic Synergy [nb 41]
Team Foundation Server
Vault英语Vault 未知 未知 未知
Veracity英语Veracity
Vesta英语Vesta 未知 未知 未知
Visual SourceSafe [nb 42] 未知 未知 未知 未知
软件 原子提交 文件重命名 合并文件重命名 符号链接 前/后事件触发 签名版本 合并跟踪
换行转换 标签 国际化支持 Unicode文件名支持 大库支持

高级功能 编辑

表格说明

  • 关键词扩展:支持关键词自动扩展,例如文件版本号。
  • 交互式提交:交互式提交允许用户对变化精挑细选,并决定哪些变化可以提交(未被选择的变化只被保留为工作副本的变化),而不是只到文件级别的粒度。
  • 外部引用:在源码树中嵌入外部库。
  • 部分检出/复制:从库中只检出或复制特定子目录的能力。
  • 权限位:在版本历史中跟踪文件权限位。
  • 保留时间戳:对于文件系统属性中的最后修改时间,以提交时间覆盖检出时间。
  • 用户自动合并工具:自动合并可以尝试通过用户选择的任何工具来进行(希望能以每个文件为基础来配置)。
  • 支持的格式:支持读/写,或者只读(转换,有可能再重复)。
  • 共享所得目标的构建缓存:通过这一能力,如果其他协作用户恰好共享了同样的依赖,可以引入其他用户构建的所得目标,而无需在本地重建它们。
软件 关键词扩展 交互式提交 外部引用 部分检出/复制 权限位 保留时间戳 用户自动合并工具 支持的格式 共享所得目标的构建缓存
AccuRev SCM英语AccuRev SCM 未知 仅执行位 git(bi-dir)[29]
GNU Bazaar [30] [31] [32] 仅执行位 [nb 43] [33] bzr、subversion[34]、git[35]、hg[36]、任何有快速导出功能的
BitKeeper POSIXRCS英语Revision Control System bitkeeper
CA Software Change Manager英语CA Software Change Manager 仅执行位 CA Software Change Manager
ClearCase英语ClearCase [37] [nb 44] ClearCase
CVS RCS英语Revision Control System [nb 45] 部份[nb 46] cvs
CVSNT英语CVSNT RCS英语Revision Control System [nb 47] [nb 48] [nb 49] cvs [nb 50]
darcs英语darcs [nb 51] 部份[nb 52] 仅针对冲突 darcs
Dimensions CM英语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英语Perforce [50] [51] [52] Perforce
Rational Team Concert英语IBM Rational Team Concert 未知 未知 N/A
Source Code Control System英语Source Code Control System 不適用 仅执行位 某些变体 rcs
Surround SCM英语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英语Veracity git、cvs、subversion、hg、任何有快速导出功能的
Vesta英语Vesta 是通过SDL 未知 Vesta
Visual SourceSafe 未知 未知 未知 未知
软件 关键词扩展 交互式提交 外部引用 部分检出/复制 权限位 保留时间戳 用户自动合并工具 支持的格式 共享所得目标的构建缓存

基本命令 编辑

表格说明

  • 绿格中不在[方括号]里的命令使用了交互式的命令行提示符。[方括号]中的文本用来解释哪里能找到等价功能。
  • 库初始化:创建一个新的空库(比如,版本控制数据库)。
  • 克隆:创建一个完全相同的库实例(在一个安全事务中)。
  • :将版本从远程库下载到本地库。
  • :将版本从本地库上传到远程库。
  • 本地分支:创建一个不存在于原始远程库中的本地分支。
  • 检出:从(远程)库创建一个本地工作副本。
  • 更新:用库中的最新版本更新工作副本中的文件。
  • 锁定:锁定库中的文件,以免被其他用户更改。
  • 添加:标记指定的文件,以便在下一次提交时添加到库中。
  • 移除:标记指定的文件,以便在下一次提交时移除(注:保存在移除时及之前的相关版本历史)。
  • 移动:标记指定的文件,以便在下一次提交时移动到新的位置。
  • 拷贝:标记指定的文件,以便在下一次提交时拷贝。
  • 合并:融合同一个工作副本路径的两个来源之间的差别。
  • 提交:将变化记录到库中。
  • 恢复:从库中恢复工作副本文件。
  • 生成打包文件:创建一个包含压缩的对给定库的变化集的文件。
  • 重定位:将本地提交重定位到已更新的上游地址。
软件 库初始化 克隆 本地分支 检出 更新 锁定 添加 移除 移动 拷贝 合并 提交 恢复 生成打包文件 重定位
AccuRev SCM英语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英语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英语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英语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英语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英语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英语Veracity repo init clone pull push branch checkout pull -u lock add rm mv N/A merge commit revert N/A N/A
Vesta英语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英语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英语CVSNT [在“.cvsrc”文件中] edit -x / unedit[nb 76] admin -o[nb 77] [nb 78] annotate[nb 79] [56]
Darcs英语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英语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英语Surround SCM checkout shelf rollback duplicatechanges diff search
Team Foundation Server lock / unlock shelve / unshelve rollback merge 未知 未知
Veracity英语Veracity lock / unlock[nb 87] incoming / outgoing
软件 命令别名 锁定/解锁 搁置/取消搁置 回滚 挑选 二分检索 出入 过滤 记录

用户界面 编辑

表格说明

  • 软件:应用的名称。
  • 网页版界面:表示应用软件是否包含一个网页版界面。网页版界面可以允许软件发送诊断数据到一个网站,甚至能允许对应用软件进行远程控制。
  • 图形界面:GUI,图形用户界面。 如果一个软件产品提供了GUI,它的功能可以通过应用程序窗口来访问,而不是只能通过象DOS界面一样在命令提示符后面敲入命令来访问。
  • 插件:功能通过集成开发环境来实现。 最低的功能应该是,列出文件的版本状态,及检入/检出文件。
软件 网页版界面 独立GUI IDE的集成与/或插件
AccuRev SCM英语AccuRev SCM Windows(incl.与资源管理器整合)、LinuxUnixOS XBeOS IntelliJ IDEAEclipseVisual 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英语CA Software Change Manager 包含 基于Eclipse的GUI Eclipse、MS Visual Studio
ClearCase英语ClearCase 包含,Clearcase网页界面 较老的:MS Windows自带的,类Unix系统基于Motif的GUI,[[Z/OS]]的TSO客户端。 Emacs、Eclipse(IBM所有,Eclipse-CCase)、Visual Studio(IBM所有)、KDevelop(标准)、IntelliJ IDEA(标准基本版)
Code Co-op英语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英语CVSNT cvsweb、ViewVC及其它 Windows、OS X、OS/400、GTK、Qt
所有支持CVS的,加上SCCI、Bugzilla、Build的商业插件
darcs英语darcs darcs.cgi包含;darcsweb、Trac 开发中;TortoiseDarcs(Windows资源管理器)、OS X(alpha) Eclipse(eclipsedarcs)、Emacs(vc-darcs.el)
Dimensions CM英语Dimensions CM Windows(incl.与资源管理器整合)
EclipseVisual StudioIntelliJ IDEA、XCode、Powerbuilder
Fossil 包含内嵌的网页服务器(UI/服务器模式),通过CGI模式可以运行多个库 fuel-scm 未知
Git Gitweb、wit、cgit、GitLabGitHubgitorious英语gitoriousTracKallithea英语Kallithea (software)Rhodecode英语RhodecodeDeveo英语DeveoBitbucket、Stash、Springloops英语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英语MKS Integrity Windows、Linux、Unix、Solaris、AIX Eclipse、Microsoft Visual Studio、Perforce及其它。还提供支持工业标准的Source Code Control(SCC)界面[64]
Mercurial 包含[nb 88]BitbucketTracKallithea英语Kallithea (software)Rhodecode英语RhodecodeDeveo英语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英语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英语Rational Team Concert 基于Eclipse的GUI Eclipse整合;MS Visual Studio整合(有限的)
StarTeam英语StarTeam 包含 Windows、Java、Eclipse、Visual Studio、BDS2006整合、Java命令行 IntelliJ IDEA(标准基本版)、Visual Studio、JBuilder、Eclipse
Subversion 包含Apache 2模块,WebSVN、ViewSVN、ViewVC英语ViewVCTracSharpForge英语SharpForge、sventon、Springloops英语SpringloopsDeveo英语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英语Surround SCM Windows、OS X、Linux Dreamweaver、Eclipse、IntelliJ IDEA、JDeveloper、KDevelop、NetBeans、Powerbuilder、Visual Studio、WebStorm
Synergy英语Rational 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英语Vault 包含 Windows、类Unix系统、OS X Visual Studio 2003及以上、Eclipse 3.2及以上
Veracity英语Veracity 包含 Windows上的Tortoise界面
Vesta英语Vesta VestaWeb
Visual SourceSafe 不包含;SSWI、VSS Remoting Windows包含;Linux、OS X和Solaris使用SourceOffSite;任何有Java虚拟机的使用Sourceanywhere Visual Studio、IntelliJ IDEA(标准,基本版)
软件 网页版界面 独立GUI IDE的集成与/或插件

历史及用户 编辑

表格说明

  • 软件:应用的名称。
  • 历史:简短地讲述软件的起源好发展。
  • 知名用户:使用该软件作为主要版本控制系统的知名工程列表,不包括该软件自己。如果它有一个完整的列表,后边会列出该列表的链接。
软件 历史 知名用户
AccuRev SCM英语AccuRev SCM 2002年首次公开发布。 美国航空福特汽车洛克希德·马丁、Orbitz[66]施乐McAfee[67]Polycom闪迪[68]西门子索尼赛门铁克[69]、Thomson Financial、威瑞森无线[70]等等。
GNU Bazaar 与baz有一定关系。由Canonical公司赞助。 UbuntuLaunchpad、KatchTV[71]
BitKeeper 受Sun WorkShop TeamWare影响 Linux内核(2002–2005)及很多公司[72]
CA Software Change Manager英语CA Software Change Manager 原公司成立于1977年;CA SCM(后来被叫做CCC/Harvest)首次发布于1995年。 没有公司的允许,CA不会公开客户的名单。CA SCM被很多有全球开发团队的公司所使用,其中有13家位列财富100。
ClearCase英语ClearCase 最初在1990年由Atria软件开发,它所追随的概念由阿波罗电脑于1980年代在DSEE上开发。最近的版本是8.0.1,于2011年11月发布。 IBM阿尔卡特-朗讯思科摩托罗拉西门子爱立信诺基亚环球银行金融电信协会及其它世界性大组织[來源請求]
Code Co-op英语Code Co-op 第一个分布式版本控制系统,于1997年进行演示,[73]随后很快发布。
CVS 1986 首次被公开发布于1986年7月3日;基于RCS。
CVSNT英语CVSNT 首次公开发布于1998年;基于CVS。由CVS开发者开始,目的是加入对更宽范围的开发方法和过程的支持。 主要由专业人员(非业余爱好者),例如:AnandTech[74]、Wachovia[75]、Wells Fargo[76]、Goldman Sachs[77]
darcs英语darcs 首次被宣布于2003年4月9日。 Mnet、xmonad、使用Darcs的项目。
Dimensions CM英语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 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 由Perforce软件公司开发,该公司由Christopher Seiwald于1995年建立。 许多全球性机构[89]、FreeBSD[90]、Google[91]
Rational Team Concert英语Rational Team Concert 1.0版本于2008年被发布。 IBM。
Revision Control System英语Revision Control System 1985年7月。 RCS通常(但不总是)会被其它系统所取代,比如CVS,而CVS正是源于对RCS的包装。
Source Code Control System英语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英语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英语Rational 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英语Vault 首次公开发布于2003年2月。 未知
Vesta英语Vesta 首次公开发布于2001年,使用LGPL。 DEC Alpha团队、康柏Alpha团队、Intel微处理器开发。
Visual SourceSafe 最初由一家叫做One Tree软件的公司创立,版本3.1。公司后被微软收购,微软于1995年左右发布了VSS的4.0版本。 未知
软件 历史 知名用户

参见 编辑

注释 编辑

  1. ^ 在ClearCase中,可以设置触发器来打开锁定模式,这已经在很多地方使用。然而,ClearCase开发通常出现在个人分支,在这种情况下每个开发者拥有他们自己的分支,因此锁定还是合并的并发模式关系不大。一旦开发者准备好将他们的代码交付到项目中,代码就被合并到主分支。
  2. ^ RTC不是分布式版本控制系统;但拥有某些分布式特征可以配置
  3. ^ 原始的Unix源码存在各种变体,但只有一个在持续维护
  4. ^ 当多个用户同时编辑一个文件的同一个版本时,只有其中一个可以将变化写回去。
  5. ^ SCCS的某些变体是免费软件,而其它的则作为商业Unix分发的一部分保持封闭。
  6. ^ SVK允许Subversion拥有分布式分支。
  7. ^ 在Subversion中,一个文件属性允许锁定模式基于每个文件。
  8. ^ Bazaar的critical模块是用Pyrex写的。
  9. ^ Bazaar bundle是一个简要的差异,有足够的额外信息来保留历史。
  10. ^ 二进制文件采用快照
  11. ^ sqlite3.c的为4 MB
  12. ^ Mercurial版本号是本地的;它们可以与库中的不同,这取决于按什么顺序执行合并。
  13. ^ Monotone的版本代表变化集,它的清单代表快照,每个版本都链接到一些清单。但清单属于遗留结构,他们不再被保存到数据库中,也不能在需要时重建。现在真正的工作发生在rosters中,它是混合的快照/变化集结构。
  14. ^ Veracity版本号是本地的;它们可以与库中的不同,这取决于按什么顺序执行合并。
  15. ^ 邪恶分身是常事。邪恶分身在SCM,而不是好莱坞 互联网档案馆存檔,存档日期2013-10-16.(英文)
  16. ^ 原子提交可以实现于个别检入ClearCase 7.1.1发布说明(英文)
  17. ^ FAQ页面存档备份,存于互联网档案馆(英文)
  18. ^ darcs的每个补丁具有一个唯一标识符,不可能两次将同一个补丁合并到库中(除非使用“不安全”命令破坏性地修改历史)。
  19. ^ 尽管它存储(及默认显示)使用8位文件名。见FAQ页面存档备份,存于互联网档案馆(英文)
  20. ^ 使用单项版本属性(“单项工作”演示,覆盖用户定义属性页面存档备份,存于互联网档案馆(英文))。
  21. ^ 它的消息和图形界面只有英语本地化,尽管软件被验证可以很好地运行在不同语言的操作系统上。
  22. ^ 由“crnl-glob”设置来控制([1]页面存档备份,存于互联网档案馆(英文)
  23. ^ Git不明确地跟踪重命名,因为从设计上它不跟踪个别文件。重命名和拆分源文件时,如果文件内容不发生显著变化,则会被检测到。
  24. ^ 从git-1.7.9以后(见release notes Archive.is存檔,存档日期2013-04-15(英文))。更老的版本不对提交签名,仅标签(见git标签(1)手册页页面存档备份,存于互联网档案馆(英文)中的-s选项)
  25. ^ 自1.7.10版本起支持UTF-8文件名(MSysGit发布说明(英文))。
  26. ^ 对于非常大的库,Git存在一些问题。见SoC 2012 Ideas页面存档备份,存于互联网档案馆(英文)中“更好的大文件支持”一节和“设计一个更快的索引格式”一节。
  27. ^ 完全允许变化包提供全部工作流,21 CFR Part 11服从基于单项控制变化包的数字签名。
  28. ^ 2009 SP5加入了一项功能来合并子开发路径。
  29. ^ Mercurial正在进行翻译,目标语言至少包括荷兰语和汉语
  30. ^ 支持对主机操作系统的依赖,对Unix支持得很好,但对Windows操作系统支持得不好。见[2]页面存档备份,存于互联网档案馆(英文)
  31. ^ 可以通过用户级钩子实现
  32. ^ Perforce将对符号链接本身进行版本控制,但如果您通过符号链接访问它们,并不会识别出它自己的被版本控制的视图(本地文件树)。
  33. ^ 贯穿过程行为组件:操作顾问好操作参与者。http://jazz.net/library/article/292(英文)页面存档备份,存于互联网档案馆
  34. ^ 虽然SCCS的源码是按支持国际化写的,但实际上只有英语的消息。
  35. ^ 从2006版之后支持
  36. ^ 当且仅当移动的目标文件与源文件在同一个Subversion库中,Subversion可以移动一个文件并保存它的历史。跨库的移动需要用第三方工具,比如svk
  37. ^ 从SVN 1.8开始,subversion在客户端支持改进的移动跟踪。在服务器端仍然不支持。
  38. ^ SVN 1.5新加入页面存档备份,存于互联网档案馆(英文)。单独工具“svnmerge[永久失效連結](英文)提供对旧版本的合并跟踪。
  39. ^ 在Subversion中,标签是Subversion更通用的“低代价复制”概念的一个特例。按照约定,标签是一个副本,它会进入一个叫做“tags”的目录。因此,标签也是被纳入版本管理的。更多信息参见[3]页面存档备份,存于互联网档案馆(英文)。表格中部分支持的原因是,Subversion实现标签的这种方式并不符合以下要求——标签名可以被用来代替任何版本标识符,无论用户在哪儿都可以访问。如果定义被放松到包含Subversion的接近程度,这一列就会变得无意义——象每一种版本控制系统都支持分支,因此也支持标签一样。
  40. ^ 使用subversion服务器
  41. ^ v6.6a到v7.1a在亚洲版,从v7.2开始在通用版
  42. ^ 重命名时移除版本改变历史;旧名字不再被引用。
  43. ^ 页面存档备份,存于互联网档案馆(英文)未实现
  44. ^ 不能在动态视图中禁用。
  45. ^ 使用CVSROOT/modules文件的别名。
  46. ^ 当加入一个文件时,CVS会记录它的执行位,但并被允许在之后改变它。
  47. ^ 这是一个GUI功能,它是通过TortoiseCVS和WinCVS来支持的,它们都包含/使用CVSNT。
  48. ^ 和CVS一样,并增加了复制库(包括“影子”库)的能力。
  49. ^ 使用模块/目录名或别名来创建,使用CVSROOT/modules或CVSROOT/modules2管理文件。
  50. ^ 要求所使用的构建工具也支持。
  51. ^ Darcs可以从明确的检查点部分检出,但这只适用于darcs-1库,而被适用于darcs-2库。[來源請求]
  52. ^ Darcs可以自动检测#!脚本,并在检出时使它们可执行。
  53. ^ 使用子项目功能(文档包 | 用户指南 | 将一个项目或流关联到其它对象页面存档备份,存于互联网档案馆(英文))。
  54. ^ 可以嵌套检出,命令为“fossil open --nested”
  55. ^ Git FAQ页面存档备份,存于互联网档案馆(英文)声明,关键词扩展不是一件好事
  56. ^ add -iadd -p,参见git-add(1)指南页面页面存档备份,存于互联网档案馆(英文)
  57. ^ Git FAQ页面存档备份,存于互联网档案馆(英文)解释,为什么经过深思熟虑,认为保留修改时间是有害的。
  58. ^ 在服务器端可以作为项目选项配置,在客户端可以作为用户选项配置。
  59. ^ commit --interactive,参见SVK::命令::提交页面存档备份,存于互联网档案馆(英文)
  60. ^ 通过第三方工具,如Tortoise SVN
  61. ^ SVN不能保留文件修改时间。如果客户端要求,它可以恢复检入时间作为最后修改时间。默认不支持。
  62. ^ 文件的MIME类型必须被检测为一个“人类可读”的MIME类型,即使合并工具可以与非人类可读的文件一起工作。
  63. ^ 独立分支, [2016-06-17], (原始内容存档于2016-03-04) 
  64. ^ 共享库, [2016-06-17], (原始内容存档于2016-03-04) 
  65. ^ 独立分支, [2016-06-17], (原始内容存档于2016-03-04) 
  66. ^ 重量级检出和轻量级检出, [2016-06-17], (原始内容存档于2016-06-30) 
  67. ^ 重定位插件
  68. ^ darcs没有命名的分支,不管是否在本地,分支都是通过克隆库来单独处理的
  69. ^ darcs send准备一组补丁,默认通过邮件发送,但也可以发送到一个文件
  70. ^ pull是fetch加merge
  71. ^ 拷贝在这之后被检测到,很象重命名
  72. ^ Mercurial书签页面存档备份,存于互联网档案馆(英文)类似于本地分支
  73. ^ 通过任何方法,先把要设为不可变的文件放在一个不可变目录里,再vcheckin。
  74. ^ 先把不可变文件从它的原始目录mv或link到它的目的不可变目录,再vcheckin。
  75. ^ 通过任何方法,先把不可变文件从它的原始目录拷贝到它的目的不可变目录,再vcheckin。
  76. ^ 您也可以启用它,在库服务器控制面板或配置文件中,作为一个主要的偏好
  77. ^ 要求管理员权限。您可以使用“cvs update –e –j @commitid –j "@<commitid"”将一个变化“回滚”,但该变化和回滚会在历史中留下痕迹
  78. ^ 使用TortoiseCVS或WinCVS来提交变化到目标服务器并选择保留哪个文件
  79. ^ 二分检索可用于cvs,因此也可用于CVSNT
  80. ^ darcs对补丁操作,而不是对修订,在把一个给定的补丁从一个库拉到另一个时,挑选组成部分比较简单,只要依赖被满足
  81. ^ fossil stash支持借助注释来进行多个搁置
  82. ^ git stash是一个多级搁置,它可以同时搁置多个变化集
  83. ^ 仅当工作在本地库且没有子版本时。disapprove命令也许可以替代。
  84. ^ svk状态列表用于在工作副本和库之间比较,而不是在两个库之间比较
  85. ^ SVN二分检索工具svn-bisect. [2016-06-27]. (原始内容存档于2016-08-16) (英语). 
  86. ^ svn状态列表用于在工作副本和库之间比较,而不是在两个库之间比较
  87. ^ 锁是报告形式的,在非连接状态下,不能强制执行
  88. ^ 单库访问用hgweb,多库从一个HTTP地址访问用hgwebdir

参考文献 编辑

  1. ^ CVS团队成员列表, 非GNU Savannah, GNU项目, [2016-06-13], (原始内容存档于2016-03-04) (英语) 
  2. ^ CVS Pro, March Hare, [2016-06-13], (原始内容存档于2016-06-10) (英语) 
  3. ^ Computer Associates, [2016-06-13], (原始内容存档于2015-11-18) (英语) 
  4. ^ 开始使用免费的Perforce!, Perforce, (原始内容存档于2013-01-26) (英语) 
  5. ^ 许可证的选择, Perforce, (原始内容存档于2012-01-12) (英语) 
  6. ^ 许可证及价格, PlasticSCM, [2016-06-13], (原始内容存档于2014-12-10) (英语) 
  7. ^ 分布式版本控制系统(DVCS)Comparisons(原文如此). Jazz Forums. [永久失效連結]
  8. ^ Jean-Michel Lemieux, 下一版Rational Team Concert倒计时:第II部分 – 源码控制增强, Jazz社区, [2016-06-13], (原始内容存档于2015-09-10) 
  9. ^ Apache软件基金会, [2016-06-13], (原始内容存档于2011-03-19) (英语) 
  10. ^ Rational Synergy, IBM 
  11. ^ Vesta配置管理系统, Sourceforge, [2016-06-13], (原始内容存档于2016-03-10) 
  12. ^ Vesta配置管理系统, Vesta, [2020-09-14], (原始内容存档于2020-09-09) 
  13. ^ IBM – Rational ClearCase – 美国, [2016-06-13], (原始内容存档于2016-06-01) (英文)
  14. ^ 变化集. March Hare软件公司. [2012年5月8日]. (原始内容存档于2012年5月11日). (英文)
  15. ^ Git服务器协议, [2016-06-13], (原始内容存档于2014-10-06) 
  16. ^ 存档副本 (PDF). [2012-01-12]. (原始内容 (PDF)存档于2011-11-13). 
  17. ^ SCM新闻 – Kronos将软件配置管理转向AccuRev. AccuRev. 2004年4月26日 [2014年1月26日]. (原始内容存档于2014年2月2日). (英文)
  18. ^ 为跨平台的异地团队提高性能和可扩展性. AccuRev. 2008年9月23日 [2014年1月26日]. (原始内容存档于2014年2月2日). (英文)
  19. ^ bzr从1.14起支持换行符转换. Doc.bazaar-vcs.org. [2014-01-26]. (原始内容存档于2009-04-13). (英文)
  20. ^ 本国语言和ClearCase的支持策略(英文),来自IBM支持
  21. ^ 大文件扩展页面存档备份,存于互联网档案馆(英文)(从Hg Rev.:2.0以后)
  22. ^ [4] 互联网档案馆存檔,存档日期2014-02-10.(英文)来自Perforce用户指南
  23. ^ [5] 互联网档案馆存檔,存档日期2014-02-09.(英文)来自Perforce用户指南
  24. ^ Perforce公共知识库 – 首页. Perforce.com. [2014年1月26日]. (原始内容存档于2007年8月14日). (英文)
  25. ^ Perforce知识库:国际化和本地化. Kb.perforce.com. 2010年10月21日 [2014年1月26日]. (原始内容存档于2012年2月8日). (英文)
  26. ^ Perforce知识库:国际化和本地化. Kb.perforce.com. 2010年10月21日 [2014年1月26日]. (原始内容存档于2013年1月30日). (英文)
  27. ^ Seapine软件发布Surround SCM 2009页面存档备份,存于互联网档案馆(英文)
  28. ^ 签名页面存档备份,存于互联网档案馆(英文) – SVK Wiki
  29. ^ 企业级GitCentric | AccuRevGit. Accurev.com. [2014年1月26日]. (原始内容存档于2012年10月17日). (英文)
  30. ^ Bazaar关键词插件. Wiki.bazaar.canonical.com. 2005年9月5日 [2014年1月26日]. (原始内容存档于2014年2月1日). (英文)
  31. ^ Bazaar交互插件. Launchpad.net. [2014年1月26日]. (原始内容存档于2014年2月1日). (英文)
  32. ^ Bazaar外部插件. Launchpad.net. [2014年1月26日]. (原始内容存档于2014年2月3日). (英文)
  33. ^ 对给定的扩展名忽略合并操作. [2016-06-16]. (原始内容存档于2016-03-04). (英文)
  34. ^ bzr-svn. Launchpad.net. [2014年1月26日]. (原始内容存档于2013年11月11日). (英文)
  35. ^ bzr-git. Launchpad.net. [2014年1月26日]. (原始内容存档于2013年11月11日). (英文)
  36. ^ bzr-hg. Launchpad.net. [2014年1月26日]. (原始内容存档于2014年4月2日). (英文)
  37. ^ IBM DeveloperWorks英语IBM DeveloperWorks文章《IBM Rational ClearCase:最好的十种触发器页面存档备份,存于互联网档案馆)》(英文)
  38. ^ 清单页面存档备份,存于互联网档案馆(英文),Fossil文件格式
  39. ^ Fossil导入和导出. Fossil-scm.org. 2014年1月22日 [2014年1月26日]. (原始内容存档于2014年2月2日). (英文)
  40. ^ git-submodule(1)指南页面. Kernel.org. 2013年2月15日 [2014年1月26日]. (原始内容存档于2014年2月2日). (英文)
  41. ^ git-read-tree(1)指南页面. kernel.org. 2014年8月24日 [2014年1月24日]. (原始内容存档于2014年1月22日). (英文)
  42. ^ Mercurial关键词扩展页面. Mercurial-scm.org. [2014年1月26日]. (原始内容存档于2016年3月10日). (英文)
  43. ^ Mercurial记录扩展页面. Mercurial-scm.org. 2013年8月27日 [2014年1月26日]. (原始内容存档于2016年4月6日). (英文)
  44. ^ 子库 – Mercurial. Mercurial-scm.org. [2016年4月22日]. (原始内容存档于2021年5月13日). (英文)
  45. ^ 子库 – Mercurial. Mercurial-scm.org. 2013年9月3日 [2014年1月26日]. (原始内容存档于2021年5月13日). 
  46. ^ Mercurial时间戳扩展. Mercurial-scm.org. 2012年4月24日 [2014年1月26日]. (原始内容存档于2016年3月7日). (英文)
  47. ^ hgsubversion页. Mercurial-scm.org. 2013年8月28日 [2014年1月26日]. (原始内容存档于2016年1月30日). (英文)
  48. ^ Hg-Git Mercurial插件. Hg-git.github.com. [2014年1月26日]. (原始内容存档于2013年3月16日). (英文)
  49. ^ Mercurial转换扩展页面. Mercurial-scm.org. 2013年11月29日 [2014年1月26日]. (原始内容存档于2016年2月16日). (英文)
  50. ^ P4用户指南. Perforce. [2014年9月18日]. (原始内容存档于2014年10月22日). (英文)
  51. ^ P4用户指南. Perforce. [2014年9月18日]. (原始内容存档于2014年10月15日). (英文)
  52. ^ P4用户指南. Perforce. [2014年9月18日]. (原始内容存档于2014年10月15日). (英文)
  53. ^ 关键词替换. Svnbook.red-bean.com. [2014年1月26日]. (原始内容存档于2013年9月3日). (英文)
  54. ^ 外部定义. Svnbook.red-bean.com. [2014年1月26日]. (原始内容存档于2013年9月28日). (英文)
  55. ^ Mercurial重定位. Mercurial-scm.org. 2012年10月25日 [2014年4月23日]. (原始内容存档于2016年1月22日). (英文)
  56. ^ 故障6463 – enh:检索库. [2012年5月8日] (英语). 
  57. ^ Mercurial搁置扩展页. Mercurial-scm.org. 2013年11月7日 [2014年1月26日]. (原始内容存档于2016年1月21日) (英语). 
  58. ^ Mercurial回滚扩展页. Mercurial-scm.org. [2016年5月11日]. (原始内容存档于2016年5月13日) (英语). 
  59. ^ graft -core命令(从Hg Rev.2.0开始). Selenic.com. [2014年1月26日]. (原始内容存档于2014年2月1日) (英语). 
  60. ^ Mercurial迁移扩展页. Mercurial-scm.org. 2012年5月12日 [2014年1月26日]. (原始内容存档于2016年6月17日) (英语). 
  61. ^ Mercurial记录扩展页. Mercurial-scm.org. 2013年8月27日 [2014年1月26日]. (原始内容存档于2016年4月6日) (英语). 
  62. ^ Perforce Broker. Perforce.com. [2014年1月26日]. (原始内容存档于2013年11月16日) (英语). 
  63. ^ Perforce知识库:“Cherry Picking”集成. Kb.perforce.com. 1990年1月1日 [2014年1月26日]. (原始内容存档于2012年3月9日) (英语). 
  64. ^ 支持的集成——PTC集成. Mks.com. 2012年9月10日 [2014年1月26日]. (原始内容存档于2012年7月25日). (英文)
  65. ^ La Chose : web agency and software maker – agence web et développement de logiciels页面存档备份,存于互联网档案馆(英文)
  66. ^ 当SCM遇见Web 2.0 – Orbitz的酷程序 | 软件发配置管理和敏捷软件开发. Accurev.com. [2014年1月26日]. (原始内容存档于2014年2月2日) (英语). 
  67. ^ McAfee网页服务团队采纳建议,每年节省了$500,000. AccuRev. [2014年1月26日]. (原始内容存档于2014年2月2日) (英语). 
  68. ^ 闪迪使用AccuRev SCM软件获得竞争优势. AccuRev. [2014年1月26日]. (原始内容存档于2014年2月2日) (英语). 
  69. ^ 赛门铁克通过迁移实现重大收获. AccuRev. [2014年1月26日]. (原始内容存档于2014年2月2日) (英语). 
  70. ^ 在线会议 – 威瑞森无线如何克服障碍,使交付软件更迅速. Accurev.com. 2011年6月1日 [2014年1月26日]. (原始内容存档于2012年11月20日) (英语). 
  71. ^ 谁使用Bzr. Bazaar-vcs.org. 2005年9月21日 [2014年1月26日]. (原始内容存档于2012年3月28日) (英语). 
  72. ^ 大规模分布式软件配置管理系统. BitKeeper. [2014年1月26日]. (原始内容存档于2014年2月28日) (英语). 
  73. ^ 分布式源码控制系统. Portal.acm.org. 1997年5月18日 [2014年1月26日] (英语). 
  74. ^ 如何在Windows上建立源码控制而不需要花一毛钱。. AnandTech. [2012年5月8日]. (原始内容存档于2012年5月4日) (英语). 
  75. ^ 结合包含所有文件的标签和只包含一个子集的标签. [2012年5月8日]. (原始内容存档于2008年8月28日) (英语). 
  76. ^ 可以很快从unix客户端连接到CVSNT. [2016-06-13]. (原始内容存档于2016-09-16) (英语). 
  77. ^ gserver客户端错误. [2012年5月8日]. (原始内容存档于2015年6月20日) (英语). 
  78. ^ Serena软件的客户页面存档备份,存于互联网档案馆(英文)
  79. ^ 79.0 79.1 迈向更好的SCM:Revlogs和Mercurial (PDF). 2006年7月. (原始内容 (PDF)存档于2012-02-13) (英语). 由Matt Mackall于渥太华Linux座谈会提出 
  80. ^ 得到Perl源码并用它工作. dev.perl.org. [2014年1月26日]. (原始内容存档于2014年2月4日) (英语). 
  81. ^ Git. MediaWiki. [2012年8月1日]. (原始内容存档于2012年5月16日) (英语). 
  82. ^ IC Manage:工业级数据管理. (原始内容存档于2009-05-03) (英语). 
  83. ^ PTC使用MKS Integrity产物 — PTC Integrity为软硬件开发生命周期管理设置了新标准. Mks.com. [2014年1月26日]. (原始内容存档于2011年6月13日) (英语). 
  84. ^ 客户 — PTC Integrity. Mks.com. [2014年1月26日]. (原始内容存档于2011年3月20日) (英语). 
  85. ^ 转向前进. Python.org. [2014年1月26日]. (原始内容存档于2014年1月22日) (英语). 
  86. ^ 取得I2P代码. geti2p.net. [2014年7月3日]. (原始内容存档于2014年7月1日) (英语). 
  87. ^ 访问版本控制. botan.randombit.net. 2014年5月26日 [2014年7月3日]. (原始内容存档于2014年7月14日) (英语). 
  88. ^ 使用Monotone的项目. wiki.monotone.ca. 2011年2月6日 [2014年7月3日]. (原始内容存档于2014年7月3日) (英语). 
  89. ^ 存档副本. [2006-07-02]. (原始内容存档于2006-06-15). (英文)
  90. ^ Perforce用于FreeBSD开发. (原始内容存档于2016-04-29) (英语). 
  91. ^ [6]页面存档备份,存于互联网档案馆(英文)
  92. ^ Rochkind, Marc J., 源码控制系统 (PDF), IEEE软件工程的汇报 SE–1 (4), 1975年12月, SE–1 (4): 364–370 [2016-06-13], (原始内容存档 (PDF)于2011-05-25) (英文)
  93. ^ PWB UNIX产品声明. (原始内容存档于2021-07-14) (英语). 
  94. ^ 比较SCCS 4文件格式页面存档备份,存于互联网档案馆)和SCCS 5.0文件格式 互联网档案馆存檔,存档日期2014-08-19.(作为sccsfile 4的帮助文件),见存档副本. [2014-08-17]. (原始内容存档于2014-08-19). 
  95. ^ Starteam®. (原始内容存档于1998-05-07) (英语).  无效|deadurl=bot: unknown (帮助)
  96. ^ 客户一览. (原始内容存档于2007-08-10) (英语). 
  97. ^ 存档副本. [2006-05-30]. (原始内容存档于2006-06-13). (英文)