Svn将我的文本文件视为二进制文件

4

我尝试添加自动属性来解决将 .xml 文件视为二进制文件的问题。
但是仍然有一些文件,甚至包括 .html 和 .js 文件也被视为二进制文件。在导入时显示“(bin)”。

如何让Subversion始终将文件类型视为文本?

3个回答

5

根据我的经验,带有Windows起源的XML文件通常采用"宽字符"编码UCS-2/UTF-16,并且在添加到Subversion时会自动获得svn:mime-typeapplication/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


1
默认情况下,Subversion 会尝试确定您添加到版本控制的文件是二进制还是文本,并自动将 svn:mime-type 属性设置为 application/octet-stream(对于二进制文件)或 text/plain(对于文本文件)。有关 MIME 和 Subversion 的更多信息,请阅读 SVNBook | 文件内容类型

但是,Subversion 可能错误地确定文件是文本还是二进制,并在某些二进制文件上设置 text/plain 属性,或者反之。您可以指示 Subversion 客户端根据文件扩展名模式自动设置新添加文件的适当 mime-type 属性。请参见 SVNBook | 自动属性设置

重要提示:自动 auto-props 仅适用于新添加的文件!存储库中的所有现有文件都不会受到 auto-props 的影响,因此您需要手动重新配置这些属性。


0

请检查这些文件。可能它们采用了“二进制”编码。Subversion不会将像UTF-16(UCS-2)这样的宽编码识别为文本(因此不执行合并、差异等操作)。

尝试将这些文件转换为UTF-8格式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接