SVN差异:文件标记为二进制类型

87

我正在对我的一个文件执行svn diff命令,但是SVN将其检测为二进制类型。该文件是可读的纯文本文件,我想要获取该文件的差异。如何告诉SVN这不是一个二进制文件?

Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
2个回答

120

即使文件被标记为二进制文件,你仍然可以使用--force命令获取差异信息。

svn diff --force path/to/file


5
这是一个更好的答案,适用于类似于application/json的东西。 - Steven R. Loomis
2
@BrettZamir 但几乎任何有输出的东西都可以做到这一点。 - entonio
1
@entonio:是的,我知道...只是想指出来,因为我在使用GUI客户端时遇到了这个错误,而且我无法在其中解决,所以可能其他不经常使用命令行的人也应该知道这个问题。 - Brett Zamir

84

您可以使用Subversion属性 svn:mime-type在文件上设置显式的mimetype:

svn propset svn:mime-type 'text/plain' path/to/file

另外,您也可以使用以下命令删除该属性(因为Subversion默认为纯文本):

svn propdel svn:mime-type path/to/file

4
为什么它最初被标记为二进制文件?我的许多源文件都有同样的问题,每次都要删除属性很麻烦。 - angularsen
听起来你应该问另外一个问题... 可能在这里添加一个链接。 - Eric Wilson
1
@EricWilson -- 问道:https://dev59.com/J2Ik5IYBdhLWcg3wMLmI - drzaus
更改文件的MIME类型是否会影响其他人从svn检出新副本时执行文件的方式?在这种情况下,我认为仅为查看差异使用--force选项更有意义。 - Rishi
@Rishi,不是的,这取决于一个单独的“svn:executable”属性,它确定文件是否应具有可执行权限位。 - Michael Aaron Safyan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接