可能重复:
  为什么Mercurial认为我的SQL文件是二进制文件?

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

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

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

有帮助吗?

解决方案

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

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

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

其他提示

我不知道TortoiseHg的图形部分,但是如果你使用命令行,那么 - text 标志到 hg diff 就可以了:它使Mercurial将所有文件视为文本。

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

[diff]
git=1

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top