【发布时间】:2015-06-08 21:27:49
【问题描述】:
我尝试添加 auto-props 来解决它将 .xml 视为二进制文件的问题。
但仍有一些文件甚至 .html .js 被视为 bin。
导入时显示“(bin)”。
如何让subversion始终把文件类型当作文本处理?
【问题讨论】:
标签: svn
我尝试添加 auto-props 来解决它将 .xml 视为二进制文件的问题。
但仍有一些文件甚至 .html .js 被视为 bin。
导入时显示“(bin)”。
如何让subversion始终把文件类型当作文本处理?
【问题讨论】:
标签: svn
根据我的经验,来自 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)>
在这里,除了native,您还可以在CRLF(通常用于Windows)或LF(通常用于Unix/Linux)之间进行选择。
【讨论】:
默认情况下,Subversion 会尝试确定您添加到版本控制的文件是二进制文件还是文本文件,并自动将 svn:mime-type 属性设置为 application/octet-stream(对于二进制文件)或 text/plain(对于文本文件)。阅读SVNBook | File Content Type 了解有关 MIME 和 Subversion 的更多信息。
但是,Subversion 可能会错误地确定文件是文本文件还是二进制文件,并且会在某些二进制文件上设置text/plain 属性,反之亦然。您可以指示 Subversion 客户端根据文件扩展名模式自动设置适当的 mime-type 在新添加的文件 属性上。见SVNBook | Automatic Property Setting。
请务必注意,自动自动道具仅适用于新添加的文件!存储库中的所有现有文件都不会受到自动属性的影响,因此您需要手动重新配置这些属性。
【讨论】:
检查这些文件。可能它们具有“二进制”编码。 Subversion 不能将 UTF-16 (UCS-2) 等宽编码识别为文本(因此不能执行合并、差异 ..)。
Thy 将此类文件转换为 UTF-8
【讨论】: