我尝试添加自动道具来解决它将.xml视为二进制的问题 但仍有一些文件甚至.html .js被视为bin。 显示'(bin)'进口时。
如何让subversion始终将文件类型视为文本?
答案 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