首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mercurial无法通过命令行合并

Mercurial无法通过命令行合并
EN

Stack Overflow用户
提问于 2013-11-22 11:44:27
回答 1查看 751关注 0票数 7

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

代码语言:javascript
复制
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!

注意:合并实际上是成功的(kdiff3弹出,我合并并保存),但是mercurial被混淆了。

如何确定汞无法找到哪一种path

我尝试更新到最新版本(2.8),并查看我的mercurial.ini是否有任何可疑文件。我还使用了一个不同的合并工具,p4merge,达到了同样的效果。

EN

回答 1

Stack Overflow用户

发布于 2014-02-05 23:19:36

嗯..。事实上。

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

在这里,您可以看到filemerge函数中的以下行:

代码语言:javascript
复制
    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))

他们在您的输出中给出了相应的消息:

代码语言:javascript
复制
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函数:

代码语言:javascript
复制
  needcheck, r = func(repo, mynode, orig, fcd, fco, fca, toolconf,
                       (a, b, c, back))

然后到达ui.warn(onfailure % fd),无论是在334行还是在368行(我不知道),这将给出您的最后一个错误消息:

代码语言:javascript
复制
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文件的不同位置插入各种调试输出并重新尝试合并来发现它。这是我目前所能推荐的全部内容(因为我不能在我的机器上重现您的错误和上下文)。

P.S.:正如santiagopim建议的那样,你可能更喜欢把WC复制到干净的PC上,安装干净的汞,然后在那里重试。因为错误很可能是由某些错误配置引起的。不过,如果你想就地解决问题.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20149719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档