我一直在使用 Clear Case,并开始使用 Subversion。
现在我很困惑分支的修订号是从 0 开始还是从主干的 HEAD 修订号开始。
还有一个问题,在我提交 Trunk 之后,我很困惑分支的最新版本是否与 Trunk 的 HEAD 版本相同。
提前致谢。
我一直在使用 Clear Case,并开始使用 Subversion。
现在我很困惑分支的修订号是从 0 开始还是从主干的 HEAD 修订号开始。
还有一个问题,在我提交 Trunk 之后,我很困惑分支的最新版本是否与 Trunk 的 HEAD 版本相同。
提前致谢。
Subversion 存储库中的修订号是全局的,即它们适用于整个存储库,包括trunk
、tags
和branches
。
“使用 Subversion 进行版本控制”一书的这一部分可能对您有用:
在考虑 Subversion 中的版本控制、分支和合并时,您不应该应用任何 ClearCase 经验(除了系统变更管理的概念)。这是完全不同的。
subversion 中的主干和分支是对称的独立文件夹。当一个分支从另一个分支时,它实际上是一个轻量级的写时复制。
修订版是存储库的全局状态,而不是单个元素的状态,这就是为什么您会看到“分支的最新修订版与主干头修订版相同”。
在 Subversion 中,每个新存储库在创建时都会从修订版 1 开始。
无论您是提交到主干、分支还是创建标签,所有修订对于每个存储库都是唯一且增量的。
所以你会得到这样的修订号:
Commit to Trunk - rev 1
Commit to Trunk - rev 2
Commit to Branch - rev 3
Commit to Trunk - rev 4
Subversion 版本号是严格单调的。如果您的提交获得修订号n,那么下一次提交将是修订n +1,无论在 repo 中的什么位置提交。它甚至可能是同一个 repo 中的不同项目。