我尝试添加自动属性来解决将 .xml 文件视为二进制文件的问题。
但是仍然有一些文件,甚至包括 .html 和 .js 文件也被视为二进制文件。在导入时显示“(bin)”。
如何让Subversion始终将文件类型视为文本?
我尝试添加自动属性来解决将 .xml 文件视为二进制文件的问题。
但是仍然有一些文件,甚至包括 .html 和 .js 文件也被视为二进制文件。在导入时显示“(bin)”。
如何让Subversion始终将文件类型视为文本?
根据我的经验,带有Windows起源的XML文件通常采用"宽字符"编码UCS-2/UTF-16,并且在添加到Subversion时会自动获得svn:mime-type
application/xml
。当您从命令行添加文件时,可以通过指定选项--no-auto-props
来禁止此行为:
svn add --no-auto-props <your file(s)>
您可以始终使用以下方法更正已添加的文件:
svn pd svn:mime-type <your file(s)>
这将从您的文件中删除svn:mime-type
属性。您可能还想设置svn:eol-style
属性,以便您的差异不会混乱:
svn ps svn:eol-style native <your file(s)>
在这里,您可以选择使用CRLF
(通常用于Windows)或LF
(通常用于Unix / Linux),而不是native
。
svn:mime-type
属性设置为 application/octet-stream
(对于二进制文件)或 text/plain
(对于文本文件)。有关 MIME 和 Subversion 的更多信息,请阅读 SVNBook | 文件内容类型。
但是,Subversion 可能错误地确定文件是文本还是二进制,并在某些二进制文件上设置 text/plain
属性,或者反之。您可以指示 Subversion 客户端根据文件扩展名模式自动设置新添加文件的适当 mime-type 属性。请参见 SVNBook | 自动属性设置。
重要提示:自动 auto-props 仅适用于新添加的文件!存储库中的所有现有文件都不会受到 auto-props 的影响,因此您需要手动重新配置这些属性。
请检查这些文件。可能它们采用了“二进制”编码。Subversion不会将像UTF-16(UCS-2)这样的宽编码识别为文本(因此不执行合并、差异等操作)。
尝试将这些文件转换为UTF-8格式。