44

我有许多文件在没有正确设置它们的 Mime 类型的情况下签入 SVN。SVN 最初将它们分类为二进制。

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

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

4

4 回答 4

60

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

svn propset svn:mime-type text/plain build.xml
svn commit build.xml

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

svn blame file/to/blame --force
于 2009-01-19T19:09:44.260 回答
5

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

$ svn propget svn:mime-type *

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

$ svn propdel svn:mime-type [mislabeled-text-file...]
$ svn ci -m "zap binary mime-types" [mislabeled-text-file...]

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

于 2013-09-30T00:58:09.083 回答
0

将文件添加到存储库后,您可能还需要在 REPOSITORY 上设置类型。在 propset 命令中使用存储库的 URL 而不是工作副本的路径。

于 2011-09-28T20:23:34.713 回答
0

看起来像 mime 类型的操作并不能说服 svn 将文件视为文本。但是如果在第一次提交之前设置了正确的 mime 类型,那么 svn 会正确处理文件。例如,svn 将 eclipse .project 和 .classpath 添加为 application/xml 并将它们视为 bin。但是,如果在第一次提交之前将其更改为 text/xml,它们将被视为文本。

于 2013-05-24T13:24:31.440 回答