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