获取 'hg import' 以使用 internal:merge

HC4*_*ica 5 version-control merge mercurial

现在,当我hg import打补丁时,它无法干净地应用,hg 会部分应用补丁(可以干净地应用的大块头)并将被拒绝的大块头保存到.rej文件中。

我觉得这真的很烦人。internal:merge发生这种情况时,有没有办法让 hg 使用?

Obe*_*nne 5

显然该import命令没有这样的选项,它似乎忽略了任何其他合并工具配置。我可以想到 2 个变通方法:

  1. 使用hg import --exact然后将导入提交与您的主要负责人合并。这仅适用于使用该hg export命令创建的补丁,即带有修订信息的补丁。然后,您可以定期合并主头和导入创建的新头。

    $ hg import --exact foo.patch
    $ hg merge
    ... fix conflicts if needed ...
    $ hg commit -m 'apply patch foo'
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用旧的补丁命令:

    $ patch -p1 --merge < foo.patch`
    ... fix conflicts if needed ...
    $ hg commit -m 'apply patch foo'
    
    Run Code Online (Sandbox Code Playgroud)

    这将创建类似于internal:merge.

如果这些多步骤解决方案不适合您,请考虑请求一个功能--merge向导入命令添加一个选项。或者,您可以将这些命令粘合在一个脚本中,以便拥有自己的一次性导入命令。