TortoiseMerge与Hg一起使用时,报告所有行都已更改。

3

我想使用TortoiseMerge和Mercurial来解决冲突,但它将theirsmine中的每一行都报告为添加,好像没有正确比较。

这是我的mercurial.ini文件:

[ui]
merge = TortoiseMerge

[merge-tools]
TortoiseMerge.executable=C:\Program Files\TortoiseSVN\bin\TortoiseMerge.exe
TortoiseMerge.args=/mine:$local /theirs:$other /base:$base -o /merged:$output

我正在使用 Hg 1.7.5

发生了什么事?

更新:当使用KDiff或BeyondCompare时,基础始终为空。

谢谢


8
文件的换行编码是否发生了变化?例如,由CR+LF变为仅CR或相反?尝试通过十六进制编辑器/转储查看文件。 - Lasse V. Karlsen
我也一直遇到了问题,Beyond Compare 把每个文件都标记为已更改,然后在单击以检查时显示这些文件是相同的。 - Tyler Smith
1个回答

1

您的设置似乎是正确的。

这表明基础版本中没有该文件的副本,此时Mercurial会像该文件存在但为空一样操作。

有几种方法可以弄清楚这里发生了什么。如果没有涉及到复制或重命名,您应该能够简单地执行以下操作:

$ hg log -r "ancestor(p1(), p2())"

..确定合并的祖先,然后:

$ hg manifest -r <rev> | grep <your file>

...来确定文件是否确实存在。

或者,您可以运行“hg merge --debug”或“hg update --debug”以查看它选择的合并变更集和文件(包括重命名/复制详细信息)。

如果您发现文件确实存在于Mercurial所选择的共同祖先中,则应在以下位置报告错误(包括您的调试输出):

https://www.mercurial-scm.org/wiki/BugTracker


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接