我正在尝试使用TortoiseSVN创建补丁/应用补丁功能。它似乎无法正常使用Unicode文件,这是我们许多源代码文件的格式。看起来它们被视为二进制文件 - 我得到的信息是:
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
具体来说,这些文件的格式为UTF-16 Big Endian。
是否可以使用TortoiseSVN Create Patch / Apply Patch创建Unicode补丁?
答案 0 :(得分:1)
Subversion确定该文件是二进制文件,因为它不是真正意识到UTF-16并且它看到它认为是二进制的序列。
将svn:mime-type
属性设置为text/plain;encoding=UTF-16BE
将使Subversion以文本形式处理文件(;encoding=UTF-16BE
位是可选的,但如果您使用Apache httpd进行托管,它将使它们正确显示在网络浏览器中)。这应该避免二进制类型的错误。
然后创建差异应该可以工作,但是我不能保证它,因为我们没有正式支持UTF-16而且它没有经过测试。
使用命令行clients svn patch
命令对我来说不适用于以这种方式创建的补丁。我不确定Tortoise是否正在使用Subversion项目库中的补丁基础结构(如命令行客户端)或者是否使用TortoiseMerge自己的补丁基础结构。根据我的理解,TortoiseMerge可以识别UTF-16。
这确实是我们应该解决的问题。它不时出现。我们有long standing open issue on this。