【问题标题】:In TortoiseHg, how can i "Merge local with selected"?在 TortoiseHg 中,我如何“将本地与选定内容合并”?
【发布时间】:2012-04-12 11:02:04
【问题描述】:

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

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

  1. 更新到 release 分支
  2. 实施错误修复并提交
  3. 更新到 default 分支
  4. 右键单击 release 分支中的错误修复提交,然后选择“与本地合并...”

由于在release分支上做了很多工作,所以一直在分支之间进行更新变得很乏味。在以前版本的 TortoiseHg 中,我可以在合并之前选择分支,实际上是在执行“合并本地与选定”。这将消除上面的步骤 1 和 3。

这在 TortoiseHg 中是否可行?

【问题讨论】:

    标签: mercurial merge tortoisehg


    【解决方案1】:

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

    在 Mercurial 中,由于命名的分支名称有一个额外的变化:默认情况下,合并提交将继承其 first 父级的分支名称。如果您在合并之前没有更新到default,那么第一个父级将是release。但您可以在提交之前更改分支名称

    在命令行上它只是:

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

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

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

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

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

    【讨论】:

    • 有趣!并且可以在 2.0 后取消合并提交,然后使用正常的提交过程在不同的分支上提交合并。
    • @MarkTolonen:啊,聪明!没想到取消对话框。
    • 这个问题现在报告在bitbucket.org/tortoisehg/thg/issue/1831/…
    【解决方案2】:

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

    1. release clone 中,实现 bug 修复并提交。
    2. default 克隆中,从 release 拉取并与本地合并。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      • 2015-10-23
      • 1970-01-01
      • 2015-03-10
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      相关资源
      最近更新 更多