1

我正在为 Mercurial 开发一个扩展,它可以使用 Mercurial 标签处理版本号。目前,它检查指定的版本号是否与存储库中的其他版本号的顺序正确,以及它是否与前一个版本号相差不远。

但是,目前它仅在存储库只有一个分支时才有效。我正在尝试使其在带有分支的仓库和更多分支上运行,在具有不同开发线的仓库(一种未命名的分支)上运行。棘手的部分之一是定义用户可以做什么和不能做什么。例如,如果在分支 A 上有版本 1.1 和分支 BI 上的 1.0.1,则认为分支 B 应该始终低于 1.1。由于我不熟悉在分支开发中管理版本编号的许多不同方法,因此我想收集用例以及如何处理它。

所以,我想知道是否有人已经对这个主题进行了研究或者知道很好的资源来帮助我解决这个问题。您也可以提交用例来处理。

显然,我做了一些研究,但我找不到任何真正相关的东西。可能是因为我不知道如何用简洁和搜索引擎全面的方式表达问题。

编辑:这是我现在想出的“规则”:

  • 在每个分支上,版本号应该高于前一个(但不能太高)
  • 当您创建一个分支时,您可以将任何您想要的版本号设置为高于前一个版本号。
  • 当在每个分支上定义第一个版本号时,它定义了整个分支的顺序。一个分支永远无法超越另一个分支。
  • 这些规则由所有进一步的分支继承。
  • 当你合并两个分支时(实际上是令人讨厌的部分),常见的反复无常的态度是将合并的结果视为本地分支的一部分。就我而言,这似乎不是正确的行为。如果当您将 1.0.3 分支与 1.0.3 中的 1.1.0 版本合并时,您只能使用低于 1.1.0 的版本,因为该分支低于另一个分支,这将是非常奇怪的。我在这里建议的解决方案始终将合并视为最高分支的一部分,否则某些分支会倒退。

你能告诉我这是一致的还是我错过了一些重要的用例。

问题的第一部分仍然是主题。如果您知道有关该主题的任何相关信息,或者您知道类似的问题,请告诉我。(毕竟,它是在树中编号的唯一规则)

4

0 回答 0