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

时间:2015-06-07 04:04:28

标签: svn

我尝试添加自动道具来解决它将.xml视为二进制的问题 但仍有一些文件甚至.html .js被视为bin。 显示'(bin)'进口时。

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

3 个答案:

答案 0 :(得分:3)

根据我的经验,具有Windows源的XML文件通常具有“宽”编码UCS-2 / UTF-16,并且当添加 -ed时自动获得svn:mime-type application/xml到Subversion。通过指定--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)>

此处,您还可以选择native(通常用于Windows)或CRLF(通常为Unix / Linux),而不是LF

答案 1 :(得分:1)

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

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

请注意,自动自动道具仅适用于新添加的文件,这一点非常重要!存储库中的所有现有文件都不会受到自动道具的影响,因此您需要手动重新配置这些属性。

答案 2 :(得分:0)

检查这些文件。可能他们有'二进制'编码。 Subversion不会将UTF-16(UCS-2)等宽泛编码识别为文本(因此不会执行合并,差异...)。

您要将此类文件转换为UTF-8