版本控制软件比较

以下是版本控制软件比较。下表包括知名的版本控制和软件配置管理（SCM）软件的一般信息和技术信息。对不适用源代码的SCM软件，见。

 一般信息 

表格说明
 库模式表示源码库各个副本之间的关系。在一个主从式架构中，用户通过客户端访问总库；一般而言，他们本地机器只保存项目树的一个工作副本。工作副本的变化必须提交到总库之后才能反映给其他用户。而在分布式架构中，库之间是平等的，用户一般除了他们的工作副本之外，还有本地库来存放版本历史。
 并发模式表示如何管理工作副本的变化，以防止同时编辑造成库中的数据混乱。在锁定模式下，只有用户从总库请求并得到了一个文件的排他锁，才允许改变文件。在合并模式下，用户可以自由编辑文件，但当他们提交变化到总库时会被告知可能存在冲突，随后版本控制系统可能会对双方合并这些变化，或者当发生冲突时让用户来决定。注意，分布式版本控制几乎都是合并的并发模式。

 软件 维护者 开发状态 库模式 并发模式 许可证 平台支持 费用  Micro Focus International  主从式 合并或锁定  大部分Java平台（类Unix系统、Windows、OS X） （$350/人） GNU Bazaar Canonical公司  分布式、主从式 合并  类Unix系统、Windows、OS X  BitKeeper BitMover公司  分布式 合并  类Unix系统、Windows、OS X     主从式 合并或锁定在ClearCase中，可以设置触发器来打开锁定模式，这已经在很多地方使用。然而，ClearCase开发通常出现在个人分支，在这种情况下每个开发者拥有他们自己的分支，因此锁定还是合并的并发模式关系不大。一旦开发者准备好将他们的代码交付到项目中，代码就被合并到主分支。  Linux、Windows、AIX、Solaris、HP-UX、i5/OS、OS/390、z/OS （$4600/浮动许可证）（每个用户自动持有至少30分钟，可以手动释放）  Reliable软件  分布式 合并  Windows （$150/人）  Ross Cohen 官方网站已下线；最新版本为2007年7月13日 分布式 精确codeville合并  类Unix系统、Windows、OS X  CVS CVS团队 维护但不增加新功能 主从式 Merge  类Unix系统、Windows、OS X   March Hare软件及社区成员 维护且新功能开发中 主从式 Merge or lock  类Unix系统、Windows、OS X、i5/OS   Darcs团队  分布式 合并  类Unix系统、Windows、OS X     主从式 合并或锁定  Windows、Linux、Solaris、AIX、HP UX、z/OS   CA公司  主从式 合并或锁定  z/OS   Fossil   分布式 合并  POSIX、Windows、OS X及其它  Git 滨野纯  分布式 合并  POSIX、Windows、OS X  GNU arch Andy Tai 不维护 分布式 Merge  类Unix系统、Windows、OS X  IC Manage IC Manage公司  主从式 合并或锁定  类Unix系统、Windows、OS X （商业的）  Integrity，PTC的子公司  主从式 合并或锁定  类Unix系统、Windows  Mercurial Matt Mackall  分布式 合并  类Unix系统、Windows、OS X  Monotone Nathaniel Smith, Graydon Hoare  分布式 合并  类Unix系统、Windows、OS X  Perforce Perforce软件公司  主从式 合并或锁定  类Unix系统、Windows、OS X  Plastic SCM Codice软件  主从式 合并或锁定  Linux、Windows、OS X  PVCS Serena软件  主从式 锁定  Windows、类Unix系统     主从式RTC不是分布式版本控制系统；但拥有某些分布式特征可以配置 合并或锁定  Linux、Windows、AIX、Solaris、HP-UX、i5/OS、OS/390、z/OS、OS X  Revision Control System Thien-Thi Nguyen  本地 合并或锁定  类Unix系统  SCM Anywhere 公司  主从式 合并或锁定  类Unix系统、Windows、OS X （单用户免费；$299/人，量大优惠） Source Code Control System Jörg Schilling原始的Unix源码存在各种变体，但只有一个在持续维护  本地 锁定当多个用户同时编辑一个文件的同一个版本时，只有其中一个可以将变化写回去。  类Unix系统、Windows、OS X   Borland（）  主从式 合并或锁定  Windows并通过Java客户端跨平台 （Quoted on an individual basis） Subversion（SVN） Apache软件基金会  主从式SVK允许Subversion拥有分布式分支。 合并或锁定在Subversion中，一个文件属性允许锁定模式基于每个文件。  类Unix系统、Windows、OS X     主从式 合并或锁定  Linux、Windows、OS X （$595/人；订阅$29/月） SVK Best Practical 不维护 主从式，去中心化的 Merge  类Unix系统、Windows、OS X  Team Foundation Server（TFS） 微软  主从式、分布式  合并或锁定  Windows，通过Visual Studio Team Services跨平台     主从式、分布式 合并或锁定  Linux、Windows、类Unix系统 （联系IBM Rational）  SourceGear LLC  主从式 合并或锁定  类Unix系统、Linux、Windows （$300/人）  SourceGear LLC 网站显示不维护；最新版本2013年3月25日  (2013-03-25) 分布式 Merge or lock  类Unix系统、Linux、Windows   Kenneth Schalk、Tim Mann 网站自2006年后未更新；最新版本2009年2月15日 分布式模拟NFS协议，可以同时使用主从式 锁定分支；分支合并  Tru64、Linux  Visual SourceSafe（VSS） 微软 只修复严重错误 共享文件夹 合并或锁定  Windows （~$500/许可证，或单许可证+每个MSDN订阅 软件 维护者 开发状态 库模式 并发模式 许可证 平台支持 费用

 技术信息 

表格说明
 软件：应用的名称。
 编程语言：编程语言中的应用正在发展
 存储方法：表示文件在库中存储的形式。快照表示提交的文件被整个存储——通常是压缩的。变化集表示提交的文件只存储它与前后版本的区别。
 变化范围：表示记录的变化是针对单独的文件，还是整个目录树。
 版本ID：用来在库中标识文件的特定版本。系统可以使用伪随机标识符、版本的内容散列值或带有版本序列号（命名空间）的文件名。而Integrated Difference的版本号则基于变化集自身，它可以表示多个文件的变化。
 网络协议：同步变化时所使用的协议列表。
 源码规模：源码的大小以兆（megabyte）为单位。

 软件 编程语言 存储方法 变化范围 版本号 网络传输协议 源码体积  C++、Java 变化集 文件 数字对：NN/NN 自定义  GNU Bazaar Python、Pyrex、CBazaar的critical模块是用Pyrex写的。 快照 树 伪随机 自定义、基于ssh自定义、基于HTTP自定义、HTTP、SFTP、FTP、邮件bundleBazaar bundle是一个简要的差异，有足够的额外信息来保留历史。、WebDAV（需要插件） 4.1 MB BitKeeper C 变化集 树 变化集的键、数字 自定义、HTTP、rsh、ssh、邮件 99 MB  C、C++、Java、HTML 变化集和快照 文件和树 数字 HTTP、TCP/IP    C、Java、Perl 变化集 文件和树 数字 自定义（CCFS）、自定义（MVFS文件系统驱动器）、HTTP   C++ 变化集  用户ID-序列号 电子邮件（MAPI、SMTP/POP3、Gmail）、LAN   Python      CVS C 变化集 文件 数字 pserver、ssh 3.3 MB  C++ 变化集 文件和树 数字 基于ssh、sspi、sserver、gserver、pserver自定义 55 MB  Haskell 变化集（补丁）二进制文件采用快照 树 n/a 基于ssh、HTTP、邮件自定义 1.7 MB  C、C++、Java、C# 快照或变化集 文件和树 数字 自定义、HTTP/HTTPS  Fossil C 快照 树 SHA-1或SHA-3散列 HTTP/HTTPS、基于ssh自定义 7.2 MBsqlite3.c的为4 MB Git C、shell脚本、Perl 快照 树 SHA-1散列 自定义（git）、基于ssh自定义、HTTP/HTTPS、rsync、邮件、bundles 22 MB GNU arch C、shell脚本 变化集 树 数字 HTTP、WebDAV  IC Manage C++、C 变化集  数字 自定义  Mercurial Python、C 变化集 树 数字、Mercurial版本号是本地的；它们可以与库中的不同，这取决于按什么顺序执行合并。SHA-1散列 基于ssh自定义、HTTP、邮件bundles（有标准插件） 20 MB  C、Java 变化集 文件 数字 自定义、HTTP  Monotone C++ 混合Monotone的版本代表变化集，它的清单代表快照，每个版本都链接到一些清单。但清单属于遗留结构，他们不再被保存到数据库中，也不能在需要时重建。现在真正的工作发生在rosters中，它是混合的快照/变化集结构。 树 SHA-1散列 自定义（netsync）、基于ssh自定义、文件系统 4.4 MB  C++、C、LabVIEW 变化集 树 数字 自定义   C++、C 变化集 文件 数字    Java 变化集 树 数字 基于HTTP/HTTPS的REST服务   C 变化集 文件 数字 文件系统 5.3 MB  C++、Java、C# 变化集 文件和树 数字 基于HTTP/HTTPS的SOAP   C 变化集 文件 Numbers NFS 1.3 MB  C++、C、Java 快照 文件和树 MD5散列 自定义、TCP/IP  Subversion C 变化集和快照 树 数字 自定义（svn）、基于ssh自定义、HTTP和SSL（使用WebDAV） 5.2 MB  C++ 变化集 文件和树 数字 TCP/IP  SVK Perl 变化集 树 数字    Java 变化集（文本）/快照（二进制） 文件 数字 自定义、基于ssh自定义、HTTP Team Foundation ServerC#] 变化集 文件和树 数字 基于HTTP/HTTPS的SOAP  C#] 变化集 文件和树 数字 HTTP、HTTPS   C、JavaScript 变化集 树 数字、Veracity版本号是本地的；它们可以与库中的不同，这取决于按什么顺序执行合并。SHA-1、SHA-2和Skein散列 HTTP 52 MB  C++ 快照 树  NFS 15.8 MB Visual SourceSafe C 快照 文件 数字 SMB、DCOM  软件 编程语言 存储方法 变化范围 版本号 网络传输协议 源码体积

 功能 

表格说明
 软件：应用的名称。
 原子提交：保证所有的改变都提交成功或者都不成功。
 文件重命名：表示系统是否允许文件在改名后仍然保留他们的版本历史。
 合并文件重命名：表示系统是否能够将一个分支上的文件变化合并到另一个分支上已重命名的同一个文件上（或者相反）。 如果同一个文件在两个分支上都已经重命名，则产生重命名冲突，必须由用户来解决。
 符号链接：表示一个系统是否允许象普通文件一样对符号链接进行版本控制。 对符号链接的版本控制，某些人认为是一项功能，而另一些人则认为存在安全隐患（例如，一个到/etc/passwd的符号链接）。符号链接只支持特定的平台，这取决于软件的实现。
 前/后事件触发：表示有能力在一个动作之前或之后触发命令，例如发生一个提交的动作。
 签名版本：指集成了版本的数字签名，例如以OpenPGP的格式。
 合并跟踪：表示一个系统是否记得在哪些版本之间合并了哪些变化，并且只合并那些从一个分支合并到另一个分支时丢失的变化。
 换行转换：表示一个系统是否能适配文本文件的换行符，从而匹配当前使用的操作系统的换行方式。控制变化的粒度，例如 Subversion，可以进行配置，依据文件类型来处理换行符的不同，而Perforce根据一个单一、每个客户端的配置转换所有的文本文件。
 标签：表示是否可以给一个特定版本赋予一个带有含意的名字，无论这些名字被叫做标记还是标签。
 国际化支持：表示该软件是否支持多语言环境和多操作系统。
 Unicode文件名支持：表示该软件是否支持使用不同[[字符编码]]的文件系统之间的互操作。
 大库支持：系统能高效处理十亿字节左右或更大的库吗？

 软件 原子提交 文件重命名 合并文件重命名 符号链接 前/后事件触发 签名版本 合并跟踪 换行转换 标签 国际化支持 Unicode文件名支持 大库支持    邪恶分身是常事。邪恶分身在SCM，而不是好莱坞           GNU Bazaar             BitKeeper                           原子提交可以实现于个别检入ClearCase 7.1.1发布说明。         本国语言和ClearCase的支持策略，来自IBM支持                             CVS                              见FAQ    darcs的每个补丁具有一个唯一标识符，不可能两次将同一个补丁合并到库中（除非使用“不安全”命令破坏性地修改历史）。    尽管它存储（及默认显示）使用8位文件名。见FAQ             使用单项版本属性（“单项工作”演示，覆盖用户定义属性 ）。  它的消息和图形界面只有英语本地化，尽管软件被验证可以很好地运行在不同语言的操作系统上。   Fossil        由“crnl-glob”设置来控制（ ）     Git  Git不明确地跟踪重命名，因为从设计上它不跟踪个别文件。重命名和拆分源文件时，如果文件内容不发生显著变化，则会被检测到。    从git-1.7.9以后（见release notes ）。更老的版本不对提交签名，仅标签（见git标签（1）手册页 中的-s选项）     自1.7.10版本起支持UTF-8文件名（MSysGit发布说明）。 对于非常大的库，Git存在一些问题。见SoC 2012 Ideas 中“更好的大文件支持”一节和“设计一个更快的索引格式”一节。 GNU arch             IC Manage                   完全允许变化包提供全部工作流，21 CFR Part 11服从基于单项控制变化包的数字签名。 2009 SP5加入了一项功能来合并子开发路径。      Mercurial          Mercurial正在进行翻译，目标语言至少包括荷兰语和汉语 支持对主机操作系统的依赖，对Unix支持得很好，但对Windows操作系统支持得不好。见  大文件扩展 （从Hg Rev.:2.0以后） Monotone    可以通过用户级钩子实现  ，强制的          来自Perforce用户指南  来自Perforce用户指南 Perforce将对符号链接本身进行版本控制，但如果您通过符号链接访问它们，并不会识别出它自己的被版本控制的视图（本地文件树）。              贯穿过程行为组件：操作顾问好操作参与者。http://jazz.net/library/article/292                   虽然SCCS的源码是按支持国际化写的，但实际上只有英语的消息。    从2006版之后支持            Subversion  当且仅当移动的目标文件与源文件在同一个Subversion库中，Subversion可以移动一个文件并保存它的历史。跨库的移动需要用第三方工具，比如svk。 从SVN 1.8开始，subversion在客户端支持改进的移动跟踪。在服务器端仍然不支持。    SVN 1.5新加入 。单独工具“svnmerge”提供对旧版本的合并跟踪。  在Subversion中，标签是Subversion更通用的“低代价复制”概念的一个特例。按照约定，标签是一个副本，它会进入一个叫做“tags”的目录。因此，标签也是被纳入版本管理的。更多信息参见 。表格中部分支持的原因是，Subversion实现标签的这种方式并不符合以下要求——标签名可以被用来代替任何版本标识符，无论用户在哪儿都可以访问。如果定义被放松到包含Subversion的接近程度，这一列就会变得无意义——象每一种版本控制系统都支持分支，因此也支持标签一样。             Seapine软件发布Surround SCM 2009     SVK     使用subversion服务器 签名  – SVK Wiki                  v6.6a到v7.1a在亚洲版，从v7.2开始在通用版  Team Foundation Server                                                    Visual SourceSafe  重命名时移除版本改变历史；旧名字不再被引用。           软件 原子提交 文件重命名 合并文件重命名 符号链接 前/后事件触发 签名版本 合并跟踪 换行转换 标签 国际化支持 Unicode文件名支持 大库支持

 高级功能 

表格说明
 关键词扩展：支持关键词自动扩展，例如文件版本号。
 交互式提交：交互式提交允许用户对变化精挑细选，并决定哪些变化可以提交（未被选择的变化只被保留为工作副本的变化），而不是只到文件级别的粒度。
 外部引用：在源码树中嵌入外部库。
 部分检出/复制：从库中只检出或复制特定子目录的能力。
 权限位：在版本历史中跟踪文件权限位。
 保留时间戳：对于文件系统属性中的最后修改时间，以提交时间覆盖检出时间。
 用户自动合并工具：自动合并可以尝试通过用户选择的任何工具来进行（希望能以每个文件为基础来配置）。
 支持的格式：支持读/写，或者只读（转换，有可能再重复）。
 共享所得目标的构建缓存：通过这一能力，如果其他协作用户恰好共享了同样的依赖，可以引入其他用户构建的所得目标，而无需在本地重建它们。

 软件 关键词扩展 交互式提交 外部引用 部分检出/复制 权限位 保留时间戳 用户自动合并工具 支持的格式 共享所得目标的构建缓存         git（bi-dir）  GNU Bazaar      仍 未实现  bzr、subversion、git、hg、任何有快速导出功能的  BitKeeper        bitkeeper          CA Software Change Manager   文章《IBM Rational ClearCase：最好的十种触发器 》     不能在动态视图中禁用。  ClearCase  CVS    使用CVSROOT/modules文件的别名。 当加入一个文件时，CVS会记录它的执行位，但并被允许在之后改变它。   cvs    这是一个GUI功能，它是通过TortoiseCVS和WinCVS来支持的，它们都包含/使用CVSNT。 和CVS一样，并增加了复制库（包括“影子”库）的能力。 使用模块/目录名或别名来创建，使用CVSROOT/modules或CVSROOT/modules2管理文件。    cvs 要求所使用的构建工具也支持。     Darcs可以从明确的检查点部分检出，但这只适用于darcs-1库，而被适用于darcs-2库。 Darcs可以自动检测#!脚本，并在检出时使它们可执行。   darcs     使用子项目功能（文档包 | 用户指南 | 将一个项目或流关联到其它对象 ）。     从ClearCase、Subversion、CVS、PVCS、ChangeMan DS迁移  Fossil   可以嵌套检出，命令为“fossil open --nested”  清单 ，Fossil文件格式   fossil（使用sqlite），任何有快速导出功能的  Git Git FAQ 声明，关键词扩展不是一件好事 add -i和add -p，参见git-add(1)指南页面     Git FAQ 解释，为什么经过深思熟虑，认为保留修改时间是有害的。  git、cvs、subversion、hg、任何有快速导出功能的  Mercurial        hg、subversion、git、任何被Convert扩展支持的其它格式          Perforce          N/A          rcs         在服务器端可以作为项目选项配置，在客户端可以作为用户选项配置。 Surround  SVK  commit --interactive，参见SVK::命令::提交       subversion  Subversion  通过第三方工具，如Tortoise SVN。    SVN不能保留文件修改时间。如果客户端要求，它可以恢复检入时间作为最后修改时间。默认不支持。 文件的MIME类型必须被检测为一个“人类可读”的MIME类型，即使合并工具可以与非人类可读的文件一起工作。 subversion  Team Foundation Server        Git 、 Team Foundation Version Control (TFVC)          git、cvs、subversion、hg、任何有快速导出功能的     通过SDL     Vesta  Visual SourceSafe          软件 关键词扩展 交互式提交 外部引用 部分检出/复制 权限位 保留时间戳 用户自动合并工具 支持的格式 共享所得目标的构建缓存

 基本命令 

表格说明
 绿格中不在[方括号]里的命令使用了交互式的命令行提示符。[方括号]中的文本用来解释哪里能找到等价功能。
 库初始化：创建一个新的空库（比如，版本控制数据库）。
 克隆：创建一个完全相同的库实例（在一个安全事务中）。
 拉：将版本从远程库下载到本地库。
 推：将版本从本地库上传到远程库。
 本地分支：创建一个不存在于原始远程库中的本地分支。
 检出：从（远程）库创建一个本地工作副本。
 更新：用库中的最新版本更新工作副本中的文件。
 锁定：锁定库中的文件，以免被其他用户更改。
 添加：标记指定的文件，以便在下一次提交时添加到库中。
 移除：标记指定的文件，以便在下一次提交时移除（注：保存在移除时及之前的相关版本历史）。
 移动：标记指定的文件，以便在下一次提交时移动到新的位置。
 拷贝：标记指定的文件，以便在下一次提交时拷贝。
 合并：融合同一个工作副本路径的两个来源之间的差别。
 提交：将变化记录到库中。
 恢复：从库中恢复工作副本文件。
 生成打包文件：创建一个包含压缩的对给定库的变化集的文件。
 重定位：将本地提交重定位到已更新的上游地址。

 软件 库初始化 克隆 拉 推 本地分支 检出 更新 锁定 添加 移除 移动 拷贝 合并 提交 恢复 生成打包文件 重定位                   GNU Bazaar                  BitKeeper                                     CVS                                                      Fossil                  Git                  Mercurial                  Monotone                                    SVK                  Subversion                                                                        Visual SourceSafe                  软件 库初始化 克隆 拉 推 本地分支 检出 更新 锁定 添加 移除 移动 拷贝 合并 提交 恢复 生成打包文件 重定位

 高级命令 

表格说明
 绿格中不在[方括号]里的命令使用了交互式的命令行提示符。[方括号]中的文本用来解释哪里能找到等价功能。
 命令别名：为指定的命令或组合创建定制的别名
 锁定/解锁：排他性地锁定一个文件，以防被其他人编辑。
 搁置/取消搁置：在工作目录中暂时搁置部分或全部的变化。
 回滚：从历史中移除一个版本。
 挑选：只把某些修订从一个分支移动到另一个分支（而不是合并分支）。
 二分检索：在源码历史中，使用二分检索来查找一个变化的引入或修复。
 出入：查询本地库和远程库之间的差别（该差别可能会以推/拉的方式发送/取回）。
 过滤：在库中搜索，以找到那些匹配一个模式的行。
 记录：在一次提交中只包含一个文件的某些变化，而不包含其它的变化。

 软件 命令别名 锁定/解锁 搁置/取消搁置 回滚 挑选 二分检索 出入 过滤 记录           GNU Bazaar          BitKeeper                              Fossil          Git          Mercurial          Monotone                    SVK          Subversion                    Team Foundation Server                    软件 命令别名 锁定/解锁 搁置/取消搁置 回滚 挑选 二分检索 出入 过滤 记录

 用户界面 

表格说明
 软件：应用的名称。
 网页版界面：表示应用软件是否包含一个网页版界面。网页版界面可以允许软件发送诊断数据到一个网站，甚至能允许对应用软件进行远程控制。
 图形界面：GUI，图形用户界面。 如果一个软件产品提供了GUI，它的功能可以通过应用程序窗口来访问，而不是只能通过象DOS界面一样在命令提示符后面敲入命令来访问。
 插件：功能通过集成开发环境来实现。 最低的功能应该是，列出文件的版本状态，及检入/检出文件。

 软件 网页版界面 独立GUI IDE的集成与/或插件  有 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）   包含 基于Eclipse的GUI Eclipse、MS Visual Studio  包含，Clearcase网页界面 较老的：MS Windows自带的，类Unix系统基于Motif的GUI，[[Z/OS]]的TSO客户端。 Emacs、Eclipse（IBM所有，Eclipse-CCase）、Visual Studio（IBM所有）、KDevelop（标准）、IntelliJ IDEA（标准基本版）  不需要，因为整个工程在本地复制 Windows  CVS cvsweb、ViewVC及其它 TortoiseCVS、TkCVS （Tcl/Tk）、（Windows资源管理器）、WinCVS, OS X、GTK、Qt Eclipse（团队）、KDevelop（标准）、IntelliJ IDEA（标准，在社区版和终极版中）、Emacs（标准VC）、Komodo IDE、BBEdit  cvsweb、ViewVC及其它 Windows、OS X、OS/400、GTK、Qt 所有支持CVS的，加上SCCI、Bugzilla、Build的商业插件  darcs.cgi包含；darcsweb、Trac 开发中；TortoiseDarcs（Windows资源管理器）、OS X（alpha） Eclipse（eclipsedarcs）、Emacs（vc-darcs.el）   Windows（incl.与资源管理器整合） Eclipse、Visual Studio、IntelliJ IDEA、XCode、Powerbuilder Fossil 包含内嵌的网页服务器（UI/服务器模式），通过CGI模式可以运行多个库 fuel-scm  Git Gitweb、wit、cgit、GitLab、GitHub、、Trac、、 、、Bitbucket、Stash、、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  有 Windows、Linux、Unix、Solaris、AIX Eclipse、Microsoft Visual Studio、Perforce及其它。还提供支持工业标准的Source Code Control（SCC）界面 Mercurial 包含单库访问用hgweb，多库从一个HTTP地址访问用hgwebdir，Bitbucket、Trac、、、 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）   包含，P4Web、P4FTP Windows、Linux、Unix、OS X、BeOS Eclipse、Visual Studio（P4SCC）、KDevelop（标准？）、IntelliJ IDEA（标准基本版）、Komodo IDE、BBEdit、Emacs（p4.el） 有 基于Eclipse的GUI Eclipse整合；MS Visual Studio整合（有限的）  包含 Windows、Java、Eclipse、Visual Studio、BDS2006整合、Java命令行 IntelliJ IDEA（标准基本版）、Visual Studio、JBuilder、Eclipse Subversion 包含Apache 2模块，WebSVN、ViewSVN、、Trac、、sventon、、 Java、KDESVN、OS XLa Chose : web agency and software maker – agence web et développement de logiciels （包含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）  有 Windows、OS X、Linux Dreamweaver、Eclipse、IntelliJ IDEA、JDeveloper、KDevelop、NetBeans、Powerbuilder、Visual Studio、WebStorm  通过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客户端  包含 Windows、类Unix系统、OS X Visual Studio 2003及以上、Eclipse 3.2及以上  包含 Windows上的Tortoise界面   VestaWeb   Visual SourceSafe 不包含；SSWI、VSS Remoting Windows包含；Linux、OS X和Solaris使用SourceOffSite；任何有Java虚拟机的使用Sourceanywhere Visual Studio、IntelliJ IDEA（标准，基本版） 软件 网页版界面 独立GUI IDE的集成与/或插件

 历史及用户 

表格说明
 软件：应用的名称。
 历史：简短地讲述软件的起源好发展。
 知名用户：使用该软件作为主要版本控制系统的知名工程列表，不包括该软件自己。如果它有一个完整的列表，后边会列出该列表的链接。

 软件 历史 知名用户  2002年首次公开发布。 美国航空、福特汽车、洛克希德·马丁、Orbitz、施乐、McAfee、Polycom、闪迪、西门子、索尼、赛门铁克、Thomson Financial、威瑞森无线等等。 GNU Bazaar 与baz有一定关系。由Canonical公司赞助。 Ubuntu、Launchpad、KatchTV。 BitKeeper 受Sun WorkShop TeamWare影响 Linux内核（2002–2005）及很多公司。  原公司成立于1977年；CA SCM（后来被叫做CCC/Harvest）首次发布于1995年。 没有公司的允许，CA不会公开客户的名单。CA SCM被很多有全球开发团队的公司所使用，其中有13家位列财富100。  最初在1990年由Atria软件开发，它所追随的概念由阿波罗电脑于1980年代在DSEE上开发。最近的版本是8.0.1，于2011年11月发布。 IBM、阿尔卡特-朗讯、思科、摩托罗拉、西门子、爱立信、诺基亚、环球银行金融电信协会及其它世界性大组织。  第一个分布式版本控制系统，于1997年进行演示，随后很快发布。 CVS 1986 首次被公开发布于1986年7月3日；基于RCS。  首次公开发布于1998年；基于CVS。由CVS开发者开始，目的是加入对更宽范围的开发方法和过程的支持。 主要由专业人员（非业余爱好者），例如：AnandTech、Wachovia、Wells Fargo、Goldman Sachs。  首次被宣布于2003年4月9日。 Mnet、xmonad、使用Darcs的项目。  1980年代后期，SQL软件以“PCMS Dimensions”的名字开发（PCMS意为Product Configuration Management，产品配置管理）。经过多次兼并，该产品以“PVCS Dimensions”（1990年代，Intersolv）、“Dimensions”（2000年代早期，Merant）、“ChangeMan Dimensions”（2004年，Serena软件）及最终的“Dimensions CM”（2007年以后，Serena软件）为名发布。 洛克希德·马丁、欧洲空间局、富士通商业通讯系统及许多全球性公司。Serena软件的客户  Fossil Fossil和SQLite曾经在2007年7月21日以后使用Fossil。 SQLite、Fossil、Tcl/Tk项目 Git 林纳斯·托瓦兹于2005年4月开始，随着与BitKeeper的分歧。 Linux内核、Android、Bugzilla、GNOME、GNU Emacs、GRUB2、KDE、MySQL、Perl 5、PostgreSQL、X.Org、Cairo、Qt开发框架、Samba、OpenEmbedded、Ruby、Ruby on Rails、Wine、Fluxbox、Openbox、Compiz Fusion、XCB、ELinks、XMMS2、e2fsprogs、GNU核心工具、DokuWiki、Drupal、LibreOffice、MediaWiki、 Mono、ASP.NET MVC、ADO.NET实体框架、NuGet、jQuery及其众多插件、OpenCV、Wireshark、Django、许多公司如爱立信、微软、华为、苹果、亚马逊、LG。 GNU arch Tom Lord于2001年开始，它后来变成GNU项目的一部分。Lord于2005年8月以维护者的身份辞职。 GNU Savannah和Gna.org项目。 IC Manage 由IC Manage公司开发，该公司由Shiv Sikand和Dean Drako成立于2003年。 许多全球性机构。  最初由MKS软件开发。2011年5月由PTC购买。 许多全球工程和IT组织。 Mercurial 2005年4月6日由Matt Mackall开始，随着与BitKeeper的分歧。首次发布于2005年4月19日。 Python、Mozilla、OpenJDK、NetBeans、Xine、Xen、OpenSolaris、wmii、MoinMoin、Linux-HA、Pidgin、Gajim、Nginx、PyPy、SDL。 Monotone 首次发布于2003年4月。 CTWM、Xaraya、I2P、Botan。  由Perforce软件公司开发，该公司由Christopher Seiwald于1995年建立。 许多全球性机构、FreeBSD、Google 。  1.0版本于2008年被发布。 IBM。  1985年7月。 RCS通常（但不总是）会被其它系统所取代，比如CVS，而CVS正是源于对RCS的包装。  由Marc Rochkind于1972开始（二进制历史文件，用Snobol在IBM-370上编写），使用文本历史文件的SCCSv4于1977年2月18日发布。同样的历史文件格式在SCCS 5.0中继续使用。比较SCCS 4文件格式 和SCCS 5.0文件格式 （作为sccsfile 4的帮助文件），见 作为POSIX的代码控制工具，SCCS被广泛应用于UNIX平台，但并未被包含在许多Linux分发版本中。Sun WorkShop TeamWare使用SCCS文件。  1.0版本于1995年由StarBase软件开发，StarBase后被Borland收购（Borland后被Micro Focus收购）。 Borland、BT、Cintas、EDS、Kaiser Permanente、Met Office、Quest软件、Raymond James、西门子及很多全球分布的公司。 Subversion 于2000年由CVS开发者开始，目标是取代CVS。 ASF、clang、gcc、SourceForge、FreeBSD、Google代码、KDE（直到2011年）、PuTTY、Zope、Xiph、GnuPG、CUPS、Apache OpenOffice、TWiki、WebKit、应用于CodePlex及很多全球性机构。 SVK 作者是高嘉良和唐鳳。2003年11月19日出了第一个版本，2005年5月9日1.00版，2006年12月28日2.0.0版。2006年6月5日，SVK成为Best Practical的一个产品。 Request Tracker  1988年由Caseware开始开发，称为AmplifyControl。该公司于1994年改名为Continuus，而该产品改名为Continuus/CM之后变得更加知名。Continuus在公开上市后不久于1999年被Telelogic收购；该产品被改名为Telelogic Synergy。2008年IBM收购了Telelogic，以便将其集成到它们的Rational工具套件中。该产品现在以IBM Rational Synergy闻名。 Team Foundation Server 首次公开发布于2006年3月。  首次公开发布于2003年2月。   首次公开发布于2001年，使用LGPL。 DEC Alpha团队、康柏Alpha团队、Intel微处理器开发。 Visual SourceSafe 最初由一家叫做One Tree软件的公司创立，版本3.1。公司后被微软收购，微软于1995年左右发布了VSS的4.0版本。  软件 历史 知名用户

 参见 
 版本控制软件列表
 自由软件托管服务比较

 注释 

 参考文献 

Category:软件比较
Category:版本控制系统