本手册是为描述 Subversion 1.2 版本而编写。如果您正在运行更新版本的 Subversion,我们强烈建议您访问 https://svnbook.subversion.org.cn/ 并查阅适合您 Subversion 版本的本手册版本。

Subversion 的历史

2000 年初,CollabNet, Inc. (http://www.collab.net) 开始寻找开发者来编写 CVS 的替代品。CollabNet 提供名为 CollabNet Enterprise Edition (CEE) [2] 的协作软件套件,其中一个组件是版本控制。虽然 CEE 最初使用 CVS 作为其版本控制系统,但 CVS 的局限性从一开始就很明显,CollabNet 知道最终必须找到更好的东西。不幸的是,CVS 已经成为开源世界中的 事实上的 标准,主要是因为 没有 更好的选择,至少在免费许可下没有。因此,CollabNet 决定从头开始编写一个新的版本控制系统,保留 CVS 的基本思想,但没有 bug 和错误功能。

2000 年 2 月,他们联系了 Karl Fogel,他是 Open Source Development with CVS(Coriolis,1999)的作者,并询问他是否愿意参与这个新项目。巧合的是,当时 Karl 已经与他的朋友 Jim Blandy 讨论了新版本控制系统的设计。1995 年,他们两人创办了 Cyclic Software,一家提供 CVS 支持合同的公司,尽管他们后来出售了这家公司,但他们仍然在日常工作中使用 CVS。他们对 CVS 的沮丧让 Jim 认真思考了管理版本化数据的更好方法,他已经想出了不仅是“Subversion”这个名字,还有 Subversion 存储库的基本设计。当 CollabNet 打电话时,Karl 立即同意参与该项目,Jim 也说服他的雇主 Red Hat Software 将他“捐赠”给该项目,期限不限。CollabNet 聘请了 Karl 和 Ben Collins-Sussman,详细的设计工作于 5 月开始。在 Brian Behlendorf 和 Jason Robbins(CollabNet 的成员)以及 Greg Stein(当时是活跃在 WebDAV/DeltaV 规范流程中的独立开发者)的帮助下,Subversion 迅速吸引了一个活跃的开发者社区。事实证明,许多人对 CVS 有着相同的沮丧体验,并且乐于终于可以做点什么来改变它。

最初的设计团队确定了一些简单的目标。他们不想在版本控制方法上开拓新领域,他们只是想修复 CVS。他们决定 Subversion 将与 CVS 的功能匹配,并保留相同的开发模型,但不会复制 CVS 最明显的缺陷。尽管它不需要成为 CVS 的直接替代品,但它应该足够类似,以便任何 CVS 用户都可以轻松切换。

经过 14 个月的编码,Subversion 在 2001 年 8 月 31 日成为“自托管”。也就是说,Subversion 开发人员不再使用 CVS 来管理 Subversion 自己的源代码,而是开始使用 Subversion。

虽然 CollabNet 启动了该项目,并且仍然资助了大部分工作(它支付了几位全职 Subversion 开发人员的薪水),但 Subversion 的运作方式与大多数开源项目一样,由一套松散的、透明的规则管理,鼓励精英主义。CollabNet 的版权许可完全符合 Debian 自由软件指南。换句话说,任何人都可以随意下载、修改和重新分发 Subversion;无需征得 CollabNet 或任何其他人的许可。



[2] 还有针对更小团队的 CollabNet Team Edition (CTE) 产品。