使用Visual Studio2010。我有一个resource.h文件,TortoiseHg认为它是二进制文件,因此不会在提交窗口中显示差异。我可以轻松地在文本编辑器中打开该文件,并看到它是纯文本。
我看到了一个相关的问题(Why does Mercurial think my SQL files are binary?),表明它与文件编码有关。实际上,在Notepad++中打开文件表示该文件位于“UCS-2 Little Endian”中。我怎样才能解决这个问题?很显然,我不想破坏Visual Studio的期望。
最佳答案
仅出于显示目的,由于长期存在的UNIX约定,Mercurial将所有包含NUL 字节的文件都视为二进制文件。这几乎总是正确的..除了UTF-16(以前称为UCS-2)..其中文件的一半是NUL字节!
在内部,Mercurial始终将所有文件的视为二进制文件,因此此问题仅与诸如是否尝试显示差异之类的问题有关。
因此,您有两种选择:
一些在网上搜索“resource.h utf-16”的文件表明,如果您以UTF-8或ASCII格式保存此文件,VS2010会很好,对于C源代码来说,这绝对是不错的选择。
http://social.msdn.microsoft.com/Forums/en/vssetup/thread/aff0f96d-16e3-4801-a7a2-5032803c8d83
关于visual-studio - 为什么TortoiseHg认为Resource.h是二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7681603/