使用标签处理和建议Mercurial中的版本号,如何处理分支

时间:2012-12-12 16:17:36

标签: mercurial branch versioning

我正在为Mercurial开发一个可以使用Mercurial标签处理版本号的扩展。目前,它会检查指定的版本号是否按照正确的顺序与存储库中的其他版本号进行比较,是否与前一版本相距太远。

但是,现在它仅在存储库只有一个分支时才有效。我正试图通过分支机构和更多的回购,使用不同的开发线(一种未命名的分支)进行回购。其中一个棘手的部分是定义用户可以做什么以及不能做什么。例如,如果在分支A上,分支B上有版本1.1和1.0.1,我认为分支B应始终保持在1.1以下。由于我不熟悉在分支开发中管理版本编号的许多不同方法,我想收集用例以及如何处理它。

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

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

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

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

你能告诉我这是否一致,或者我是否遗漏了一些重要的用例。

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

0 个答案:

没有答案