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

目录版本

Subversion 跟踪的是树结构,而不仅仅是文件内容。 这是 Subversion 被用来替代 CVS 的最大原因之一。

以下是这对您(作为以前 CVS 用户)的意义

让我们进一步谈谈最后一点。 目录版本控制是一个难题; 因为我们希望允许混合版本的工作副本,所以在如何利用这种模型方面有一些限制。

从理论的角度来看,我们定义“目录 foo 的版本 5”意味着特定目录条目和属性的集合。 现在假设我们开始向foo中添加和删除文件,然后提交。 称我们仍然拥有foo的版本 5 是一种谎言。 但是,如果我们在提交后将foo的版本号提高,那也是谎言; 可能还对foo进行了其他更改,但我们尚未收到,因为我们尚未更新。

Subversion 通过在.svn区域中静默跟踪已提交的添加和删除来解决此问题。 当您最终运行 svn update 时,所有账目都与存储库结算,并且目录的新版本号将被正确设置。 因此,只有在更新之后,才能真正地说您拥有目录的“完美”版本。 在大多数情况下,您的工作副本将包含“不完美”的目录版本。

类似地,如果您尝试提交目录上的属性更改,就会出现问题。 通常,提交会提高工作目录的本地版本号。 但同样,这也是谎言,因为可能存在目录尚未拥有的添加或删除,因为尚未进行更新。 因此,除非目录是最新的,否则不允许您提交目录上的属性更改。

有关目录版本控制限制的更多讨论,请参阅 名为“混合版本的限制”的部分