我们刚刚从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
问题:
更新:在讨论了Lasse V. Karlsen提供的解决方案后,我们终于同意在发布v1.2.0之后我们不需要发布v1.1.3。我们的用户如果想要接收更新,则应更新到v1.2.0行,v1.1.2将是v1.1.x行的最后一次更新。所以,这样就消除了第一个问题。感谢伟大的建议和提示Lasse。
谢谢大家!
答案 0 :(得分:3)
您无法在默认时间轴上追溯引入1.1.3作为变更集,您可以希望的最佳方式如下:
警告:我在测试时发现的一件事是,当我将1.1.3默认内容合并到1.2.0默认内容时,必须合并.hgtags
。由于标签总是从最末端的变更集中读取(我可能在这里错了),这可能表明这不是最好的方法。至少我可能会等待标记,直到我将1.1.3合并到1.2.0时间轴(即下图中的最顶层合并)。
我可以在此处找到我的测试存储库: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.3 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 : :
这是否是一个好主意,不确定,我还没有在Mercurial中管理一个包含大量此类并行版本的项目。