gpt4 book ai didi

merge - 如何正确关闭 Mercurial 中的功能分支?

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

我已经完成了功能分支 feature-x 的工作。我想将结果 merge 回默认分支并关闭feature-x,以便在hg分支的输出中删除它。

我提出了以下场景,但它有一些问题:

$ hg up default
$ hg merge feature-x
$ hg ci -m merge
$ hg up feature-x
$ hg ci -m 'Closed branch feature-x' --close-branch

因此,feature-x 分支(changests 40-41)已关闭,但有一个新头,关闭分支变更集 44,每次都会在 hg Heads 中列出:

$ hg log ...
o 44 Closed branch feature-x
|
| @ 43 merge
|/|
| o 42 Changeset C
| |
o | 41 Changeset 2
| |
o | 40 Changeset 1
|/
o 39 Changeset B
|
o 38 Changeset A
|

更新:从版本 1.5 开始,Mercurial 似乎不再在 hg Heads 的输出中显示闭合分支的头。

是否可以关闭 merge 分支而不留下更多头?有没有更正确的方法来关闭功能分支?

相关问题:

最佳答案

一种方法是让 merge 的功能分支保持打开状态(且不活动):

$ hg up default
$ hg merge feature-x
$ hg ci -m merge

$ hg heads
(1 head)

$ hg branches
default 43:...
feature-x 41:...
(2 branches)

$ hg branches -a
default 43:...
(1 branch)

另一种方法是在使用额外提交进行 merge 之前关闭功能分支:

$ hg up feature-x
$ hg ci -m 'Closed branch feature-x' --close-branch
$ hg up default
$ hg merge feature-x
$ hg ci -m merge

$ hg heads
(1 head)

$ hg branches
default 43:...
(1 branch)

第一个更简单,但它留下了一个开放的分支。第二个没有留下任何开放的头/分支,但它需要一个辅助提交。人们可以使用 --close-branch 将对功能分支的最后一次实际提交与此额外提交结合起来,但应该提前知道哪个提交将是最后一个提交。

更新:从 Mercurial 1.5 开始,您可以随时关闭分支,这样它就不会再同时出现在 hg 分支hg 头 中。唯一可能让您烦恼的是,从技术上讲,修订图仍将有一个没有子项的修订。

更新 2:自 Mercurial 1.8 起,书签已成为 Mercurial 的核心功能。书签比命名分支更方便进行分支。另请参阅这个问题:

关于merge - 如何正确关闭 Mercurial 中的功能分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2237222/

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