版本控制软件比较

以下是版本控制软件比较。下表包括知名的版本控制和软件配置管理（SCM）软件的一般信息和技术信息。对不适用源代码的SCM软件，见开源配置管理软件比较（英语：Comparison of open-source configuration management software）。 表格说明 库模式表示源码库各个副本之间的关系。在一个主从式架构中，用户通过客户端访问总库；一般而言，他们本地机器只保存项目树的一个工作副本。工作副本的变化必须提交到总库之后才能反映给其他用户。而在分布式架构中，库之间是平等的，用户一般除了他们的工作副本之外，还有本地库来存放版本历史。 并发模式表示如何管理工作副本的变化，以防止同时编辑造成库中的数据混乱。在锁定模式下，只有用户从总库请求并得到了一个文件的排他锁，才允许改变文件。在合并模式下，用户可以自由编辑文件，但当他们提交变化到总库时会被告知可能存在冲突，随后版本控制系统可能会对双方合并这些变化，或者当发生冲突时让用户来决定。注意，分布式版本控制几乎都是合并的并发模式。 表格说明 软件：应用的名称。 编程语言：编程语言中的应用正在发展 存储方法：表示文件在库中存储的形式。快照表示提交的文件被整个存储——通常是压缩的。变化集表示提交的文件只存储它与前后版本的区别。 变化范围：表示记录的变化是针对单独的文件，还是整个目录树。 版本ID：用来在库中标识文件的特定版本。系统可以使用伪随机标识符、版本的内容散列值或带有版本序列号（命名空间）的文件名。而Integrated Difference的版本号则基于变化集自身，它可以表示多个文件的变化。 网络协议：同步变化时所使用的协议列表。 源码规模：源码的大小以兆（megabyte）为单位。 表格说明 软件：应用的名称。 原子提交：保证所有的改变都提交成功或者都不成功。 文件重命名：表示系统是否允许文件在改名后仍然保留他们的版本历史。 合并文件重命名：表示系统是否能够将一个分支上的文件变化合并到另一个分支上已重命名的同一个文件上（或者相反）。 如果同一个文件在两个分支上都已经重命名，则产生重命名冲突，必须由用户来解决。 符号链接：表示一个系统是否允许象普通文件一样对符号链接进行版本控制。 对符号链接的版本控制，某些人认为是一项功能，而另一些人则认为存在安全隐患（例如，一个到/etc/passwd的符号链接）。符号链接只支持特定的平台，这取决于软件的实现。 前/后事件触发：表示有能力在一个动作之前或之后触发命令，例如发生一个提交的动作。 签名版本：指集成了版本的数字签名，例如以OpenPGP的格式。 合并跟踪：表示一个系统是否记得在哪些版本之间合并了哪些变化，并且只合并那些从一个分支合并到另一个分支时丢失的变化。 换行转换：表示一个系统是否能适配文本文件的换行符，从而匹配当前使用的操作系统的换行方式。控制变化的粒度，例如 Subversion，可以进行配置，依据文件类型来处理换行符的不同，而Perforce根据一个单一、每个客户端的配置转换所有的文本文件。 标签：表示是否可以给一个特定版本赋予一个带有含意的名字，无论这些名字被叫做标记还是标签。 国际化支持：表示该软件是否支持多语言环境和多操作系统。 Unicode文件名支持：表示该软件是否支持使用不同[[字符编码]]的文件系统之间的互操作。 大库支持：系统能高效处理十亿字节左右或更大的库吗？ 表格说明 关键词扩展：支持关键词自动扩展，例如文件版本号。 交互式提交：交互式提交允许用户对变化精挑细选，并决定哪些变化可以提交（未被选择的变化只被保留为工作副本的变化），而不是只到文件级别的粒度。 外部引用：在源码树中嵌入外部库。 部分检出/复制：从库中只检出或复制特定子目录的能力。 权限位：在版本历史中跟踪文件权限位。 保留时间戳：对于文件系统属性中的最后修改时间，以提交时间覆盖检出时间。 用户自动合并工具：自动合并可以尝试通过用户选择的任何工具来进行（希望能以每个文件为基础来配置）。 支持的格式：支持读/写，或者只读（转换，有可能再重复）。 共享所得目标的构建缓存：通过这一能力，如果其他协作用户恰好共享了同样的依赖，可以引入其他用户构建的所得目标，而无需在本地重建它们。 表格说明 绿格中不在[方括号]里的命令使用了交互式的命令行提示符。[方括号]中的文本用来解释哪里能找到等价功能。 库初始化：创建一个新的空库（比如，版本控制数据库）。 克隆：创建一个完全相同的库实例（在一个安全事务中）。 拉：将版本从远程库下载到本地库。 推：将版本从本地库上传到远程库。 本地分支：创建一个不存在于原始远程库中的本地分支。 检出：从（远程）库创建一个本地工作副本。 更新：用库中的最新版本更新工作副本中的文件。 锁定：锁定库中的文件，以免被其他用户更改。 添加：标记指定的文件，以便在下一次提交时添加到库中。 移除：标记指定的文件，以便在下一次提交时移除（注：保存在移除时及之前的相关版本历史）。 移动：标记指定的文件，以便在下一次提交时移动到新的位置。 拷贝：标记指定的文件，以便在下一次提交时拷贝。 合并：融合同一个工作副本路径的两个来源之间的差别。 提交：将变化记录到库中。 恢复：从库中恢复工作副本文件。 生成打包文件：创建一个包含压缩的对给定库的变化集的文件。 重定位：将本地提交重定位到已更新的上游地址。 表格说明 绿格中不在[方括号]里的命令使用了交互式的命令行提示符。[方括号]中的文本用来解释哪里能找到等价功能。 命令别名：为指定的命令或组合创建定制的别名 锁定/解锁：排他性地锁定一个文件，以防被其他人编辑。 搁置/取消搁置：在工作目录中暂时搁置部分或全部的变化。 回滚：从历史中移除一个版本。 挑选：只把某些修订从一个分支移动到另一个分支（而不是合并分支）。 二分检索：在源码历史中，使用二分检索来查找一个变化的引入或修复。 出入：查询本地库和远程库之间的差别（该差别可能会以推/拉的方式发送/取回）。 过滤：在库中搜索，以找到那些匹配一个模式的行。 记录：在一次提交中只包含一个文件的某些变化，而不包含其它的变化。 表格说明 软件：应用的名称。 网页版界面：表示应用软件是否包含一个网页版界面。网页版界面可以允许软件发送诊断数据到一个网站，甚至能允许对应用软件进行远程控制。 图形界面：GUI，图形用户界面。 如果一个软件产品提供了GUI，它的功能可以通过应用程序窗口来访问，而不是只能通过象DOS界面一样在命令提示符后面敲入命令来访问。 插件：功能通过集成开发环境来实现。 最低的功能应该是，列出文件的版本状态，及检入/检出文件。 表格说明 软件：应用的名称。 历史：简短地讲述软件的起源好发展。 知名用户：使用该软件作为主要版本控制系统的知名工程列表，不包括该软件自己。如果它有一个完整的列表，后边会列出该列表的链接。 版本控制软件列表 自由软件托管服务比较 在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 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软件的客户 （页面存档备份，存于互联网档案馆）（英文） 迈向更好的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）. （英文）