Mercurial对某些文件类型执行二进制比较

时间:2009-09-10 13:00:53

标签: mercurial string-comparison file-type

  

可能重复:
  Why does Mercurial think my SQL files are binary?

我最近开始使用Mercurial,当我还原我的一个.SQL文件时,Mercurial执行了二进制比较。这显然限制了所做更改的可见性,因为没有差异。

是否可以选择设置文件类型来进行字符串比较?

我正在使用带有Mercurial 1.3.1的Tortioise Hg 0.8.1。

3 个答案:

答案 0 :(得分:7)

对于实际存储,Mercurial实际上并没有完全处理文本和二进制文件。然而,当被要求使用'hg diff','hg log -p'或在Web界面中查看变更集时向用户显示差异时,它会尝试猜测“会在视觉上显示此差异有意义”。当它试图使“我应该将它显示为文本”时,应用的测试是“在文件的前1000个字节内是否有NUL字节(0x00)。

所以你的文件没有被区别对待,除了它如何显示给用户输出,但是如果你可以在那里找到一个NUL字节,你也可以让它停止。

或者,extdiff扩展可用于完全控制差异的显示方式。

答案 1 :(得分:2)

我不知道TortoiseHg的图形部分,但是如果你使用命令行,那么--text的{​​{1}}标志应该可以解决这个问题:它使Mercurial将所有文件视为文本

答案 2 :(得分:0)

您应该尝试将这些行添加到~/.hgrc

[diff]
git=1

git diff格式适用于二进制文件。