本手册旨在描述 Subversion 1.1。如果您正在运行较新版本的 Subversion,我们强烈建议您访问 https://svnbooks.subversion.org.cn/ 并查阅适合您 Subversion 版本的书籍版本。
2000 年初,CollabNet, Inc. (http://www.collab.net) 开始寻找开发者来编写 CVS 的替代品。CollabNet 提供一个名为 SourceCast 的协作软件套件,其中一个组件是版本控制。虽然 SourceCast 最初使用 CVS 作为其版本控制系统,但 CVS 的局限性从一开始就显而易见,CollabNet 知道它最终将不得不找到更好的替代方案。不幸的是,CVS 已经成为开源世界中的 事实上的 标准,主要是因为 没有 比它更好的,至少在免费许可证下没有。因此,CollabNet 决定从头开始编写一个新的版本控制系统,保留 CVS 的基本思想,但没有其 bug 和缺陷。
2000 年 2 月,他们联系了 Karl Fogel,他是 使用 CVS 进行开源开发(Coriolis,1999)的作者,并询问他是否愿意参与这个新项目。巧合的是,当时 Karl 已经与他的朋友 Jim Blandy 讨论了新版本控制系统的设计。1995 年,他们两人共同创办了 Cyclic Software,一家提供 CVS 支持合同的公司,虽然后来他们出售了这家公司,但他们仍然在工作中每天使用 CVS。他们对 CVS 的沮丧促使 Jim 认真思考管理版本化数据的更好方法,他已经不仅想出了“Subversion”这个名字,还提出了 Subversion 存储库的基本设计。当 CollabNet 打电话时,Karl 立即同意参与该项目,Jim 让他的雇主 RedHat Software 基本上将他捐赠给了该项目,期限不限。CollabNet 聘用了 Karl 和 Ben Collins-Sussman,详细的设计工作于 5 月开始。在 CollabNet 的 Brian Behlendorf 和 Jason Robbins 以及 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 或任何其他人的许可。