gpt4 book ai didi

command-line - Mercurial 无法通过命令行 merge

转载 作者:行者123 更新时间:2023-12-04 12:58:38 24 4
gpt4 key购买 nike

我的 mercurial 安装拒绝通过命令行 merge 。这是我打开后的输出 verbosedebug .

C:\src\StackOverflow>hg resolve --all --verbose --debug
couldn't find merge tool codecompare_diff
couldn't find merge tool codecompare_merge
couldn't find merge tool bcompare
couldn't find merge tool beyondcompare3
couldn't find merge tool beyondcompare3-noauto
couldn't find merge tool rekisa
couldn't find merge tool UltraCompare
couldn't find merge tool araxis
couldn't find merge tool meld
couldn't find merge tool diffuse
picked tool 'kdiff3' for StackOverflow/StackOverflow.csproj (binary False symlink False)
merging StackOverflow/StackOverflow.csproj
my StackOverflow/StackOverflow.csproj@4f4faeac0fea+ other StackOverflow/StackOverflow.csproj@ae29e8c6bb88 ancestor StackOverflow/StackOverflow.csproj@399376fedfc5
The system cannot find the path specified.
merging StackOverflow/StackOverflow.csproj failed!

注意: merge 实际上是成功的(kdiff3 弹出,我 merge 并保存),但 mercurial 很困惑。

我如何确定哪个 path无法通过 Mercurial 找到?

我尝试更新到最新版本 (2.8) 并查看我的 mercurial.ini对于任何可疑文件。我还使用了不同的 merge 工具 p4merge,以达到完全相同的效果。

最佳答案

嗯……其实。

这可能是愚蠢的“解决方案”,但您可以查看 filemerge.py应该与 mercurial 一起提供的文件。
该文件定义了 mercurial 如何进行 merge (调用外部 merge 工具、处理结果等)。

在这里,您会在 filemerge 中看到以下几行功能:

    ui.debug("picked tool '%s' for %s (binary %s symlink %s)\n" %
(tool, fd, binary, symlink))
[...]
ui.status(_("merging %s\n") % fd)

ui.debug("my %s other %s ancestor %s\n" % (fcd, fco, fca))

他们在您的输出中给出了相应的消息:
picked tool 'kdiff3' for StackOverflow/StackOverflow.csproj (binary False symlink False)
merging StackOverflow/StackOverflow.csproj
my StackOverflow/StackOverflow.csproj@4f4faeac0fea+ other StackOverflow/StackOverflow.csproj@ae29e8c6bb88 ancestor StackOverflow/StackOverflow.csproj@399376fedfc5

然后 _xmerge函数是从 filemerge 调用的具有以下几行的功能:
  needcheck, r = func(repo, mynode, orig, fcd, fco, fca, toolconf,
(a, b, c, back))

然后是 ui.warn(onfailure % fd)到达行 334或在线 368 (我不知道),它给出了您的最后一条错误消息:
merging StackOverflow/StackOverflow.csproj failed!

介于 ui.debug("my %s other %s ancestor %s\n" % (fcd, fco, fca)) 之间的某处和 ui.warn(onfailure % fd) ui.warn(onfailure % fd)是有原因的实际到达(可能在 _xmerge 中)。你可以尝试通过在 filemerge.py的各个地方插入各种调试输出来发现它。文件,然后重试 merge 。这就是我目前所能推荐的(因为我无法在我的机器上重现您的错误和上下文)。

P.S.:正如 santiagopim 所建议的,您可能更喜欢将 WC 复制到干净的 PC 并安装干净的 mercurial 并在那里重试。因为错误很可能是由一些错误配置引起的。但是,如果您更愿意尝试就地解决问题...

关于command-line - Mercurial 无法通过命令行 merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20149719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com