如何将一些修订从一个分支移动到另一个分支?

时间:2016-09-27 15:39:54

标签: mercurial

hg convert --branchmap允许将分支中的所有修订移动到不同的分支。在具有多个头的分支中(例如,一条路径通向"封闭分支")如何将一些修订移动到另一个分支而保持其他分支不变?

2 个答案:

答案 0 :(得分:1)

根据Pierre-Yves David

  

你应该能够使用“histedit”实现这一点。在第一个变更集上使用“编辑”操作,并在提交之前设置分支名称。

例如,假设我们有:

@  changeset:   3:acd042300874
|  tag:         tip
|  user:        user@name.com
|  date:        Tue Sep 27 11:22:33 2016 -0400
|  summary:     commit4
|
o  changeset:   2:6cd4bf5a3e25
|  parent:      0:7f1fbf9d8623
|  user:        user@name.com
|  date:        Tue Sep 27 11:22:33 2016 -0400
|  summary:     commit3
|
| o  changeset:   1:5cf7adbb92ea
|/   user:        user@name.com
|    date:        Tue Sep 27 11:22:32 2016 -0400
|    summary:     commit2
|
o  changeset:   0:7f1fbf9d8623
   user:        user@name.com
   date:        Tue Sep 27 11:22:32 2016 -0400
   summary:     commit1

我们希望将修订版2,3移到另一个分支上,我们将执行以下操作:

  1. hg update 3
  2. hg histedit 2
  3. 将两个修订版本从“选择”更改为“编辑”
  4. hg branch“new-branch”
  5. hg commit -m“rev2的旧提交消息”
  6. hg histedit - 继续
  7. hg commit -m“rev3的旧提交消息”
  8. hg histedit - 继续

答案 1 :(得分:0)

branchmapsplicemap选项组合使用hg convert。可能不止一步,具体取决于您需要做什么。