【问题标题】:Svn treats my text file as binarysvn 将我的文本文件视为二进制文件
【发布时间】:2015-06-08 21:27:49
【问题描述】:

我尝试添加 auto-props 来解决它将 .xml 视为二进制文件的问题。
但仍有一些文件甚至 .html .js 被视为 bin。 导入时显示“(bin)”。

如何让subversion始终把文件类型当作文本处理?

【问题讨论】:

    标签: svn


    【解决方案1】:

    根据我的经验,来自 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)之间进行选择。

    【讨论】:

      【解决方案2】:

      默认情况下,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

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

      【讨论】:

        【解决方案3】:

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

        Thy 将此类文件转换为 UTF-8

        【讨论】:

          猜你喜欢
          • 2010-10-02
          • 2011-10-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多