gpt4 book ai didi

mercurial - 需要有关善变分支结构的帮助

转载 作者:行者123 更新时间:2023-12-03 06:45:43 25 4
gpt4 key购买 nike

我们刚刚从 SVN 切换到 HG,并讨论分支结构。我们提出了以下结构,需要一些审查,并想知道该结构将来是否会导致问题。

                  * Tag v1.2.0
|
* Merge Branch v1.2.0 into Default
/|
/ |
* |
|\ |
Merge v1.1.2 | \|
fixes into | * Tag v1.1.2
v1.2.0 branch | |
| * Merge Branch v1.1.2 into Default
| |\
| | \
Commit code * | * Commit a bug fix
| | |
| | |
Merge v1.1.1 * | * Branch v1.1.2
fixes into |\ | /
v1.2.0 branch | \| /
| * Tag v1.1.1
| |
| * Merge Branch v1.1.1 into Default
Commit code * |\
| | * Commit a bug fix
| | |
Branch v1.2.0 * | * Branch v1.1.1
\ | /
\|/
* Tag v1.1.0
  • 每个标记代表一个版本发布。
  • 错误修复仅发生在 v0.0.x 分支上
  • 细微改进和细微新功能(UI 的外观更新等)仅发生在 v0.x.x 分支上
  • 默认分支(中心)始终具有稳定且经过测试的代码

问题:

  • 将 v1.2.0 merge 到默认分支后,我们能否从标签 v1.1.2 和 relase/tag v1.1.3 创建 v1.1.3 的分支?
  • 这个结构是有效的结构还是我们试图提出一些荒谬的东西并且已经有解决方案/答案?
<小时/>

更新:经过讨论Lasse V. Karlsen提供的解决方案,我们最终同意在发布v1.2.0后不再需要发布v1.1.3。如果我们的用户想要接收更新,则应该更新到 v1.2.0 系列,而 v1.1.2 将是 v1.1.x 系列的最后一次更新。这样一来,第一个问题就被排除了。感谢 Lasse 的宝贵建议和提示。

谢谢大家!

最佳答案

您将无法沿着默认时间线追溯引入 1.1.3 作为变更集,您所能期望的最好情况如下:

  1. 更新回您发布 1.1.2 时的默认值
  2. 分支到 1.1.3 并提交
  3. 将其与默认的 1.1.2 标记 merge ,这将在默认分支上创建另一个头,与您现在正在处理的 1.2 时间线平行
  4. 1.1.3 的标记并发布
  5. 将这个新的 head merge 到之前的 head 中,将 bug 修复到 1.2.x 中

警告:测试时我发现的一件事是,当我将 1.1.3 默认内容 merge 到 1.2.0 时,必须 merge .hgtags默认内容。由于标签总是从最顶端的变更集中读取(我在这里可能是错的),这可能表明这不是执行此操作的最佳方法。至少我可能会等待标记,直到我将 1.1.3 merge 到 1.2.0 时间线中(即下图中最上面的 merge 。)

我的测试存储库可以在这里找到:https://lassevk.kilnhg.com/Repo/StackOverflow/answers/SO6071322

它看起来像这样:

                  * Merge Branch 1.1.3 into Default                  |\                  | \                  |  * Tag v1.1.3                  |  |                  |  * Merge Branch v1.1.3 into 1.1.x Default                   |  |\                  |  | \Tag v1.2.0        *  |  * Commit a bug fix                  |  |  |                  |  |  |Merge Branch      *  |  * Branch v1.1.3v1.2.0 into      /|  | /Default         / |  |/               *  |  +               |\ | /Merge v1.1.2   | \|/  fixes into    |  * Tag v1.1.2 v1.2.0 branch |  |               |  * Merge Branch v1.1.2 into Default               :  :

这是否是一个好主意,不确定,我还没有在 Mercurial 中管理过像这样的具有大量并行版本的项目。

关于mercurial - 需要有关善变分支结构的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6071322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com