我怎么告诉TortoiseHg文件不是二进制文件?

Phi*_*ale 25 diff binaryfiles tortoisehg

有人最近在我们的Mercurial存储库中添加了PowerShell(.ps1)脚本.该文件是纯文本,但TortoiseHg似乎认为它是二进制文件并显示一条消息:"文件或差异未显示:文件是二进制文件".

如何告诉TortoiseHg ps1文件是文本而不是二进制文件.我正在使用版本TortoiseHg 2.0.3

Nei*_*den 28

文件以UCS-2编码编码,我使用notepad ++将其转换为UTF-8.

现在已经完成了,mercurial似乎将文件识别为文本并正确执行差异.

是时候再读一次!

这可能是值得看的这个,也为UCS-2似乎密切相关的UTF-16.根据这个链接,它可以超越它,但是从2000年之前开始,Windows从UCS-2移动到UTF-16的努力一直在进行!


小智 5

很抱歉回复了一篇如此陈旧的帖子,但出于历史目的,我们会提出一些意见.

首先,底层代码存储库(mercurial)将所有文件视为二进制文件.你在这里失去的一切就是能够看到差异,物理差异仍然被追踪,而这些变化的本质并不是因为龟无法展示它们.(相比之下,JPEG二进制文件即使对于小像素更改也具有较大的二进制差异;而这些文件的差异相对较小.)

其次,即使Tortoise无法显示差异,kdiff3也可以适当地设置你的mercurial.ini文件.在您的主目录中,您可能有一个mercurial.ini文件,即使只是为了记录您的用户名.如果将其展开以包含合并模式.在这里查看合并模式:http://www.selenic.com/mercurial/hgrc.5.html.

在那里,你会看到如何告诉mercurial这些文件中的差异应该与kdiff3一起显示,即使mercurial认为它们是二进制的.Tortoise仍然不会在工作台上显示差异,但您可以右键单击该文件并向父级显示差异,您将看到差异就好了.它并不完美,但总比没有好.