将一些提交转移到Hg的新分支

时间:2013-01-04 15:19:23

标签: mercurial branch

我的回购目前如下:

O 7: default
|
O 6: default
|
|  O 5: default
|  |
|  O 4: default
|  |
|  O 3: default
| /
O 2: default
|
O 1: default

我想将6和7移到新分支,我该怎么办?

2 个答案:

答案 0 :(得分:2)

您可以使用rebase extension。需要启用它,但该链接包含有关如何执行此操作的信息。

命令是:

hg update 2
hg branch newbranch
hg commit -m "Creating new branch"
hg rebase -s 6 -d 8

这将创建新分支,提交它(在您的示例中将创建修订版本8),然后将版本6及其后代移动到新分支上。显然,您需要查找存储库的实际修订号。

您也可以使用mq extension执行此操作,但我认为在此实例中更容易使用rebase。

答案 1 :(得分:2)

取决于您如何定义术语“分支”。如果你在谈论named branches,那么Steve Kaye的回答很好。

如果你在谈论像5& 6在图中的分支上,然后您不需要做任何事情。 6& 7已经在他们自己的分支上。你可以不管它们,然后回到修订版2继续在那里工作。

hg update 2
<continue work>
hg commit -m "New Stuff"

这将为您留下如下图:

o 8: default
|  
|  O 7: default
|  |
|  O 6: default
|  |
|  |  O 5: default
|  |  |
|  |  O 4: default
|  |  |
|  |  O 3: default
 \ | /
   O 2: default
   |
   O 1: default

如果您想为每个提示指定一个名称,请查看bookmarks

hg bookmark -r 8 stable
hg bookmark -r 7 experimental-stuff
hg bookmark -r 5 some-feature

...然后你可以按名称在它们之间进行更改。