本手册旨在描述 Subversion 1.1。如果您使用的是较新版本的 Subversion,我们强烈建议您访问 https://svnbook.subversion.org.cn/ 并查阅适合您 Subversion 版本的书籍版本。
目录
“如果 C 提供了足够的绳子让你上吊,那么可以把 Subversion 看作一种绳索存储设施。” —Brian W. Fitzpatrick
在开源软件的世界中,并发版本系统 (CVS) 长期以来一直是版本控制的首选工具。事实也确实如此。CVS 本身是免费软件,其非限制性 modus operandi 和对网络操作的支持——允许数十名地理位置分散的程序员共享他们的工作——非常适合开源世界的协作性质。CVS 及其半混乱的开发模式已成为开源文化的基石。
但与许多工具一样,CVS 也开始显露出其年代感。Subversion 是一种相对较新的版本控制系统,旨在成为 CVS 的继任者。设计人员从两个方面着手赢得 CVS 用户的青睐:通过创建具有类似于 CVS 的设计(和“外观和感觉”)的开源系统,以及尝试修复 CVS 的大多数明显缺陷。虽然结果不一定代表版本控制设计中的下一个重大演变,但 Subversion 确实 非常强大、易用且灵活。
本书旨在记录 Subversion 版本控制系统的 1.1 系列。我们已尽一切努力确保内容的全面性。然而,Subversion 拥有一个充满活力且活跃的开发社区,因此已经为 Subversion 的未来版本规划了许多功能和改进,这些功能和改进可能会改变本书中的一些命令和特定说明。
本书面向想要使用 Subversion 管理数据的计算机精通人士。虽然 Subversion 在许多不同的操作系统上运行,但其主要用户界面是基于命令行的。本书讨论和使用的是该命令行工具 (svn)。为了保持一致性,本书中的示例假设读者使用类 Unix 操作系统,并且对 Unix 和命令行界面比较熟悉。
也就是说,svn 程序也适用于 Microsoft Windows 等非 Unix 平台。除了少数例外情况,例如使用反斜杠 (\) 而不是正斜杠 (/) 作为路径分隔符,在 Windows 上运行该工具的输入和输出与其 Unix 对应工具完全相同。但是,Windows 用户可能在 Cygwin Unix 模拟环境中运行示例时会获得更大的成功。
大多数读者可能是需要跟踪源代码更改的程序员或系统管理员。这是 Subversion 最常见的用途,因此它是本书所有示例的基础场景。但 Subversion 可用于管理对任何类型的信息的更改:图像、音乐、数据库、文档等等。对于 Subversion 而言,所有数据都只是数据。
虽然本书假设读者从未使用过版本控制,但我们也努力让 CVS 用户能够轻松地过渡到 Subversion。在特殊侧边栏中可能会不时讨论 CVS,并且一个特殊附录总结了 CVS 和 Subversion 之间的大多数差异。