Mercurial 在《乌龟》中,我怎么能;将本地文件与选定的“文件”合并;?

Mercurial 在《乌龟》中,我怎么能;将本地文件与选定的“文件”合并;?,mercurial,merge,tortoisehg,Mercurial,Merge,Tortoisehg,实际上,我想做与“与本地合并”相反的事情 澄清: 我们有一个发布分支和一个默认分支。在发布分支上执行错误修复时,以下是例行程序: 更新发布分支 实现bug修复,并提交 更新到默认分支 右键单击发布分支中的bug fix commit,并选择“与本地合并…” 由于在发布分支上完成了大量工作,所以在分支之间一直进行更新会变得很乏味。在以前版本的TortoiseHg中,我可以在执行合并之前选择分支,实际上是执行“将本地与选定对象合并”。这将消除上述步骤1和3 这在Ortoisehg中还可行吗?我还没有

实际上,我想做与“与本地合并”相反的事情

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

  • 更新发布分支
  • 实现bug修复,并提交
  • 更新到默认分支
  • 右键单击发布分支中的bug fix commit,并选择“与本地合并…”
  • 由于在发布分支上完成了大量工作,所以在分支之间一直进行更新会变得很乏味。在以前版本的TortoiseHg中,我可以在执行合并之前选择分支,实际上是执行“将本地与选定对象合并”。这将消除上述步骤1和3


    这在Ortoisehg中还可行吗?

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

  • 在版本克隆中,实现bug修复和提交
  • 在默认克隆中,从发布中拉取并与本地合并

  • 三方合并基本上是对称的:将两个不同版本的代码(两个分支)合并为一个版本(合并提交)。更新到
    默认值
    和合并到
    发行版
    之间没有技术上的区别,或者相反。特别是,合并冲突完全相同

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

    在命令行上,它只是:

    $ hg update release
    $ hg merge default
    $ hg branch default
    $ hg commit -m 'Merged release into default'
    
    在2.0之前版本的TortoiseHg中,您会看到以下对话框以提交合并:

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

    并且不再有一个按钮来更改分支


    也许你可以要求TortoiseHg开发者再次添加该按钮,或者如果你想要一个兼容Mercurial现代版本的2.0之前的TortoiseHg,你也可以使用它。

    有趣!在post-2.0中,可以通过取消合并提交,然后使用正常提交过程在另一个分支上提交合并。@MarkTolonen:啊,真聪明!我没有想过取消对话框。此问题现在已在上报告