Mercurial中的合并失败与“不支持操作”

时间:2010-12-03 16:51:31

标签: vim mercurial

我按照https://www.mercurial-scm.org/wiki/MergingWithVim设置我的〜/ .hgrc以使用vimdiff。

[ui]
merge = vimdiff

[merge-tools]
vimdiff.executable = vim
vimdiff.args = -d $base $local $output $other +close +close

但是,当我尝试运行实际的合并时,它对以下内容的帮助不大:

bash-3.2$ hg --debug merge
  searching for copies back to rev 7
resolving manifests
 overwrite None partial False
 ancestor 88aaf3a2e10f local 311bb03b96cd+ remote 29bec6ac5dd3
 junk: versions differ -> m
preserving junk for resolve of junk
updating: junk 1/1 files (100.00%)
picked tool 'vimdiff' for junk (binary False symlink False)
abort: Operation not supported: /Accounts/rainest/mtest/junk.orig

知道为什么会这样做吗?

2 个答案:

答案 0 :(得分:2)

我已经明白了。

事实证明,如果您在类似BSD的系统上使用NFS挂载,那么Python2.6的shutil库中会出现一个非常具体的错误。更多信息和修复可以在http://bugs.python.org/issue7512找到。

答案 1 :(得分:1)

根据您的安装方式,Mercurial通常附带vimdiff预先配置用于合并。在/etc/mercurial/hgrc.d/mergetools.rc的我的机器上,但我想在你的OSX盒子里它有所不同。

如果您从.hgrc删除所有内容,可能需要查看它是否尚未使用vimdiff进行合并。

您可以使用命令hg showconfig --debug查看有效的所有每用户,每个repo和系统范围的配置项。如果你在添加的行被删除之后看到vimdiff,那么你可能会很高兴。