如何明确告诉SVN将文件视为文本,而不是二进制文件

DWr*_*ght 39 svn binary encoding text file

我有很多文件,我检查到SVN没有正确设置他们的Mime类型.SVN最初将它们归类为二进制.

我已经通过propset将他们的Mime类型通过propset设置为"text/plain; charset = UTF-8"并且我确保所有文件都是UTF-8签名的.当我'svn blame filename'时,svn说该文件是二进制的,并没有给我明确的责备类型输出.

关于如何说服SVN这些是真正的文本文件的任何建议?

Ste*_*fan 53

将svn:mime-type属性设置为"text/plain"有助于:

svn propset svn:mime-type text/plain build.xml
svn commit build.xml
Run Code Online (Sandbox Code Playgroud)

此外,您可以强制Subversion在归咎时将文件视为文本:

svn blame file/to/blame --force
Run Code Online (Sandbox Code Playgroud)

  • 对于未来的读者:svn propset svn:mime-type text/plain build.xml (7认同)
  • 全局设置:编辑`〜/ .subversion/config`,将`*.proto = svn:mime-type = text/plain`作为单行添加到文件的`[auto-props]`部分. (2认同)

小智 5

我遇到了同样的问题:我检查了许多 utf8 文件(Linux 的本机编码),其中一些被错误地选择为二进制文件并显示“(bin)”。我没有深入研究错误是如何发生的,但检查了那里的内容......

$ svn propget svn:mime-type *
Run Code Online (Sandbox Code Playgroud)

...注意到正确签入的文本文件根本没有 svn:mime 属性,只是从文本文件中删除了错误标记的二进制文件中的 svn:mime-type 属性。

$ svn propdel svn:mime-type [mislabeled-text-file...]
$ svn ci -m "zap binary mime-types" [mislabeled-text-file...]
Run Code Online (Sandbox Code Playgroud)

这似乎没有任何不良影响。警告用户:我不知道 Windows 在这种情况下会如何表现,尽管这很容易测试。