版本控制软件比较

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

## 一般信息

表格说明

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

软件｜维护者｜开发状态｜库模式｜并发模式｜许可证｜平台支持｜费用

AccuRev SCM｜Micro Focus International｜主从式｜合并或锁定｜专有｜大部分Java平台（类Unix系统、Windows、OS X）

GNU Bazaar｜Canonical公司｜分布式、主从式｜合并｜GNU GPL｜类Unix系统、Windows、OS X｜免费

BitKeeper｜BitMover公司｜分布式｜合并｜Apache｜类Unix系统、Windows、OS X｜免费

ClearCase｜Rational Software｜主从式｜合并或锁定｜专有｜Linux、Windows、AIX、Solaris、HP-UX、i5/OS、OS/390、z/OS

Code Co-op｜Reliable软件｜分布式｜合并｜专有｜Windows

Codeville｜Ross Cohen｜官方网站已下线；最新版本为2007年7月13日｜分布式｜精确codeville合并｜BSD｜类Unix系统、Windows、OS X｜免费

CVS｜CVS团队｜维护但不增加新功能｜主从式｜Merge｜GNU GPL｜类Unix系统、Windows、OS X｜免费

CVSNT｜March Hare软件及社区成员｜维护且新功能开发中｜主从式｜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公司｜主从式｜合并或锁定｜专有｜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个工作区使用，不限制文件数；或者免费供最多1,000个文件使用，不限制用户数；否则$740–$900/人永久使用，或者$144–$300/人/年订阅，量大优惠

Plastic SCM｜Codice软件｜主从式｜合并或锁定｜专有｜Linux、Windows、OS X｜免费供最多15个用户；否则$595/人起，或者$3,500/25人/年

PVCS｜Serena软件｜主从式｜锁定｜专有｜Windows、类Unix系统

IBM Rational Team Concert｜Rational软件｜主从式｜合并或锁定｜专有｜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

Source Code Control System｜Jörg Schilling｜本地｜锁定｜CDDL / proprietary｜类Unix系统、Windows、OS X｜习惯上，SCCS被捆绑进商业UNIX分发，也存在免费的CDDL-许可证版本

StarTeam｜Borland（Micro Focus International）｜主从式｜合并或锁定｜专有｜Windows并通过Java客户端跨平台

Subversion（SVN）｜Apache软件基金会｜主从式｜合并或锁定｜Apache｜类Unix系统、Windows、OS X｜免费

Surround SCM｜Seapine软件｜主从式｜合并或锁定｜专有｜Linux、Windows、OS X

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订阅或直接购买许可证

Telelogic Synergy｜Rational软件｜主从式、分布式｜合并或锁定｜专有｜Linux、Windows、类Unix系统

Vault｜SourceGear LLC｜主从式｜合并或锁定｜专有｜类Unix系统、Linux、Windows

Veracity｜SourceGear LLC｜网站显示不维护；最新版本2013年3月25日 (2013-03-25)｜分布式｜Merge or lock｜Apache｜类Unix系统、Linux、Windows｜免费

Vesta｜Kenneth Schalk、Tim Mann｜网站自2006年后未更新；最新版本2009年2月15日｜分布式模拟NFS协议，可以同时使用主从式｜锁定分支；分支合并｜LGPL｜Tru64、Linux｜免费

Visual SourceSafe（VSS）｜微软｜只修复严重错误｜共享文件夹｜合并或锁定｜专有｜Windows

软件｜维护者｜开发状态｜库模式｜并发模式｜许可证｜平台支持｜费用

## 技术信息

表格说明

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

软件｜编程语言｜存储方法｜变化范围｜版本号｜网络传输协议｜源码体积

AccuRev SCM｜C++、Java｜变化集｜文件｜数字对：NN/NN｜自定义

GNU Bazaar｜Python、Pyrex、C｜快照｜树｜伪随机｜自定义、基于ssh自定义、基于HTTP自定义、HTTP、SFTP、FTP、邮件bundle、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｜变化集｜文件和树｜数字｜自定义（CCFS）、自定义（MVFS文件系统驱动器）、HTTP

Code Co-op｜C++｜变化集｜用户ID-序列号｜电子邮件（MAPI、SMTP/POP3、Gmail）、LAN

Codeville｜Python

CVS｜C｜变化集｜文件｜数字｜pserver、ssh｜3.3 MB

CVSNT｜C++｜变化集｜文件和树｜数字｜基于ssh、sspi、sserver、gserver、pserver自定义｜55 MB

darcs｜Haskell｜变化集（补丁）｜树｜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

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｜变化集｜树｜数字、SHA-1散列｜基于ssh自定义、HTTP、邮件bundles（有标准插件）｜20 MB

MKS Integrity｜C、Java｜变化集｜文件｜数字｜自定义、HTTP

Monotone｜C++｜混合｜树｜SHA-1散列｜自定义（netsync）、基于ssh自定义、文件系统｜4.4 MB

Perforce｜C++、C、LabVIEW｜变化集｜树｜数字｜自定义

PVCS｜C++、C｜变化集｜文件｜数字

IBM 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｜变化集｜树｜数字

Telelogic Synergy｜Java｜变化集（文本）/快照（二进制）｜文件｜数字｜自定义、基于ssh自定义、HTTP

Team Foundation Server｜C++和C#｜变化集｜文件和树｜数字｜基于HTTP/HTTPS的SOAP

Vault｜C#｜变化集｜文件和树｜数字｜HTTP、HTTPS

Veracity｜C、JavaScript｜变化集｜树｜数字、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｜是｜是｜部分｜是｜是｜是｜是｜是｜不适用｜是｜是｜是

GNU Bazaar｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

BitKeeper｜是｜是｜是｜是｜是｜是｜是｜是｜是

CA Software Change Manager｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

ClearCase｜部分｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

Code Co-op｜是｜是｜是｜否｜部分｜否｜否｜否｜是

Codeville

CVS｜否｜否｜否｜否｜部分｜否｜否｜是｜是｜否｜是

CVSNT｜是｜是｜是｜是｜是｜否｜是｜是｜是｜是｜是｜是

darcs｜是｜是｜是｜否｜是｜是｜不适用｜否｜是｜否｜是

Dimensions CM｜是｜是｜是｜否｜是｜是｜是｜是 ｜否 ｜是｜是

Fossil｜是｜是｜是｜是｜否｜是｜是｜是｜是｜是｜是

Git｜是｜部分｜是｜是｜是｜是｜是｜是｜是｜是｜是｜部分

GNU arch｜是｜是｜是｜是｜是｜是

IC Manage｜是｜是｜否｜是｜是｜是｜是｜是｜是｜是

MKS Integrity｜是｜是｜是｜否｜是｜是｜是｜是｜是｜是｜是

Mercurial｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜部分｜部分

Monotone｜是｜是｜是｜否｜是｜是，强制的｜是｜是｜是｜是

Perforce｜是｜是｜是｜部分｜是｜是｜是｜是｜是｜是｜是｜是

IBM Rational Team Concert｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

Source Code Control System｜是｜否｜不适用｜不适用｜否｜否｜是｜否｜否｜部分｜是｜是

StarTeam｜是｜是｜是｜否｜否｜是｜是｜是｜是｜是

Subversion｜是｜是｜部分｜是｜是｜否｜是｜是｜部分｜是｜是｜是

Surround SCM｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

SVK｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

Telelogic Synergy｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

Team Foundation Server｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是｜是

Vault｜是｜是｜是｜否｜是｜否｜否｜是｜是

Veracity｜是｜是｜是｜是｜是｜否｜是｜是｜是｜否｜是｜是

Vesta｜是｜是｜是｜否｜否｜否｜是｜否｜是

Visual SourceSafe｜否｜否｜否｜是｜否｜否｜是｜是

软件｜原子提交｜文件重命名｜合并文件重命名｜符号链接｜前/后事件触发｜签名版本｜合并跟踪｜换行转换｜标签｜国际化支持｜Unicode文件名支持｜大库支持

## 高级功能

表格说明

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

软件｜关键词扩展｜交互式提交｜外部引用｜部分检出/复制｜权限位｜保留时间戳｜用户自动合并工具｜支持的格式｜共享所得目标的构建缓存

AccuRev SCM｜是｜是｜是｜仅执行位｜是｜是｜git（bi-dir）｜否

GNU Bazaar｜是｜是｜是｜否｜仅执行位｜否｜是｜bzr、subversion、git、hg、任何有快速导出功能的｜否

BitKeeper｜POSIX和Revision Control System｜是｜是｜是｜是｜是｜是｜bitkeeper｜否

CA Software Change Manager｜否｜是｜否｜是｜仅执行位｜是｜是｜CA Software Change Manager｜否

ClearCase｜是｜否｜否｜是｜是｜是｜是｜ClearCase｜是

CVS｜Revision Control System｜否｜是｜是｜部分｜是｜否｜cvs｜否

CVSNT｜Revision Control System｜是｜是｜是｜是｜是｜否｜cvs｜是

darcs｜否｜是｜否｜否｜部分｜否｜仅针对冲突｜darcs｜否

Dimensions CM｜是｜否｜是｜是｜是｜是｜是｜从ClearCase、Subversion、CVS、PVCS、ChangeMan DS迁移

Fossil｜否｜是｜是｜否｜仅执行位｜否｜否｜fossil（使用sqlite），任何有快速导出功能的｜否

Git｜否｜是｜是｜是｜仅执行位｜否｜是｜git、cvs、subversion、hg、任何有快速导出功能的｜否

Mercurial｜是｜是｜是｜部分｜仅执行位｜通过（alpha）扩展｜仅非琐碎的情况｜hg、subversion、git、任何被Convert扩展支持的其它格式｜否

Perforce｜是｜否｜否｜是｜是｜是｜是｜Perforce｜否

IBM Rational Team Concert｜否｜是｜是｜是｜是｜N/A｜否

Source Code Control System｜是｜否｜不适用｜是｜仅执行位｜某些变体｜否｜rcs｜否

Surround SCM｜是｜否｜否｜是｜否｜是｜是｜Surround｜否

SVK｜是｜是｜是｜subversion｜否

Subversion｜是｜部分｜是｜是｜仅执行位｜部分｜是｜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 / init-repo / init-repo --no-trees｜branch / branch --no-tree｜pull｜push｜init / branch｜checkout / checkout --lightweight｜update｜N/A｜add｜rm｜mv｜N/A｜merge｜commit｜revert｜send｜rebase

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｜clone｜pull｜add｜remove｜move｜N/A｜pull / push｜record｜revert｜send -o｜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｜push｜branch｜checkout｜pull｜N/A｜add｜rm｜mv｜cp 然后 git add｜merge｜commit｜revert｜bundle｜rebase

Mercurial｜init｜clone｜pull｜push｜bookmark｜clone｜pull -u｜N/A｜add｜rm｜mv｜copy｜merge｜commit｜revert｜bundle｜rebase

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｜vrm｜mv 然后 vcheckin｜cp 然后 vcheckin｜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｜否｜admin -o｜有｜annotate｜否｜否｜否

Darcs｜否｜否｜revert / unrevert｜unrecord｜有｜test --bisect｜pull / push --dry-run｜否｜record

Fossil｜否｜否｜stash pop / stash apply｜merge --rollback｜merge --cherrypick｜bisect｜否｜search｜否

Git｜在“.gitconfig”文件中｜否｜stash / stash pop｜reset HEAD^｜cherry-pick｜bisect｜cherry｜grep｜add -p

Mercurial｜在“.hgrc”文件中｜否｜shelve / unshelve（附带扩展）｜strip（附带扩展）｜graft（核心）或transplant（附带扩展）｜bisect｜incoming / outgoing｜grep｜record（附带扩展）

Monotone｜在monotonerc中｜否｜否｜kill_rev_locally｜pluck｜bisect｜否｜否

Perforce｜通过broker｜lock / unlock｜shelve / unshelve｜obliterate｜integ｜grep

SVK｜否｜否｜否｜否｜svk merge｜否｜status｜否｜否

Subversion｜否｜lock / unlock｜否｜否｜svnmerge cherry-picking｜第三方工具｜status -u｜否｜否

Surround SCM｜否｜checkout｜shelf｜rollback｜duplicatechanges｜否｜diff｜search｜否

Team Foundation Server｜是｜lock / unlock｜shelve / unshelve｜rollback｜merge｜否｜否

Veracity｜否｜lock / unlock｜否｜否｜否｜否｜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）界面

Mercurial｜是包含，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（包含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、施乐、McAfee、Polycom、闪迪、西门子、索尼、赛门铁克、Thomson Financial、威瑞森无线等等。

GNU Bazaar｜与baz有一定关系。由Canonical公司赞助。｜Ubuntu、Launchpad、KatchTV。

BitKeeper｜受Sun WorkShop TeamWare影响｜Linux内核（2002–2005）及很多公司。

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年进行演示，随后很快发布。

CVS｜1986 首次被公开发布于1986年7月3日；基于RCS。

CVSNT｜首次公开发布于1998年；基于CVS。由CVS开发者开始，目的是加入对更宽范围的开发方法和过程的支持。｜主要由专业人员（非业余爱好者），例如：AnandTech、Wachovia、Wells Fargo、Goldman Sachs。

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软件）为名发布。｜洛克希德·马丁、欧洲空间局、富士通商业通讯系统及许多全球性公司。

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 Integrity｜最初由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｜由Perforce软件公司开发，该公司由Christopher Seiwald于1995年建立。｜许多全球性机构、FreeBSD、Google。

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上编写），使用文本历史文件的SCCSv4于1977年2月18日发布。同样的历史文件格式在SCCS 5.0中继续使用。｜作为POSIX的代码控制工具，SCCS被广泛应用于UNIX平台，但并未被包含在许多Linux分发版本中。Sun WorkShop TeamWare使用SCCS文件。

StarTeam｜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

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版本。

软件｜历史｜知名用户