在TortoiseHg中,我怎样才能“选择合并本地”?

时间:2012-04-12 11:02:05

标签: mercurial merge tortoisehg

实际上,我想做的是“与当地合并”

澄清: 我们有一个发布分支和一个默认分支。在发布分支上进行错误修复时,这是例程:

  1. 更新发布分支
  2. 实施错误修复,并提交
  3. 更新默认分支
  4. 右键单击发布分支中的错误修复提交,然后选择“与本地合并...”
  5. 由于在发布分支上完成了大量工作,因此在分支之间始终进行更新非常繁琐。在TortoiseHg的早期版本中,我可以在进行合并之前选择分支,实际上是执行“与选定的本地合并”。这将取消上述步骤1和3。

    这在TortoiseHg中是否可行?

2 个答案:

答案 0 :(得分:2)

三向合并基本上是对称的:将两个不同版本的代码(两个分支)合并为一个版本(合并提交)。更新到default和与release合并,或者以相反的方式进行操作之间没有技术上的区别。特别是,合并冲突完全相同。

在Mercurial中,由于命名的分支名称,还有一个额外的转折:默认情况下,合并提交将继承其第一个父级的分支名称。如果在合并之前未更新为default,则第一个父级将为release。但您可以在提交之前更改分支名称

在命令行上它只是:

$ hg update release
$ hg merge default
$ hg branch default
$ hg commit -m 'Merged release into default'

在TortoiseHg的2.0之前版本中,您会看到此对话框提交合并:

hgtk commit dialog

提交消息上方的“branch:release”按钮可用于更改下一次提交的分支 - 合并提交。在TortoiseHg 2.x中,对话框如下所示:

thg commit dialog

并且不再有用于更改分支的按钮。

也许您可以要求TortoiseHg开发人员再次添加按钮,或者您可以使用Henrik Stuart's TortoiseHg如果您想要与现代版本的Mercurial兼容的2.0之前的TortoiseHg。

答案 1 :(得分:1)

我还没找到办法,甚至命令行合并也总是与本地合作。我只是为每个分支保留一个克隆并在克隆之间切换而不是更新单个克隆。对于大型项目,这可以防止在更改分支时通常耗费时间的“全部重建”。添加额外的拉动步骤但总体上节省了时间:

  1. 发布克隆中,实施错误修复和提交。
  2. 默认克隆中,从发布拉出并与本地合并。