代码之家  ›  专栏  ›  技术社区  ›  Even Mien

mercurial对某些文件类型执行二进制比较[重复]

  •  2
  • Even Mien  · 技术社区  · 15 年前

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

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

    是否有设置文件类型以进行字符串比较的选项?

    我用的是tortioise hg 0.8.1和mercurial 1.3.1。

    3 回复  |  直到 12 年前
        1
  •  7
  •   Ry4an Brase    15 年前

    就实际存储而言,Mercurial处理文本和二进制文件的方式完全不同。但是,当要求使用“hg diff”、“hg log-p”或在Web界面中查看变更集时,它确实试图猜测“在视觉上显示此差异是否有意义”。当它试图做出“我是否应该把它显示为文本”的决定时,应用的测试是“文件的前1000个字节中是否有一个nul字节(0x00)”。

    所以,除了在用户输出中显示的方式之外,对您的文件的处理没有任何不同,但是如果您可以在其中找到一个nul字节,那么您可能也可以停止该操作。

    或者,可以使用extdiff扩展来全面控制diff的显示方式。

        2
  •  2
  •   Martin Geisler Borealid    15 年前

    我不知道TortoiseHg的图形部分,但是如果使用命令行,那么 --text 旗到 hg diff 应该这样做:它使mercurial将所有文件都视为文本。

        3
  •  0
  •   joeforker    15 年前

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

    [diff]
    git=1
    

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