为什么`svn blame Foo.cs`返回的所有行都是空白的?

Dav*_*ave 5 svn binary properties

我的Subversion存储库中有一个名为"Foo.cs"的文件.当我运行该命令时svn blame Foo.cs,输出看起来像这样:

1000 dave 
1000 dave
2000 dave
2000 dave
9999 dave
1000 dave
9999 dave
Run Code Online (Sandbox Code Playgroud)

我唯一能想到的是,从修订版1000-9000开始,Foo.cs将"svn:mime-type"属性设置为"application/octet-stream".但是,由于r9000 Foo.cs没有这样的属性,因为它(并且一直是)一个文本文件.

此外,我已经尝试使用svn blame Foo.cs --force没有成功.

有谁知道如何解决这个问题?

编辑:在r1000,历史被截断(svn log Foo.cs不报告任何早于此的内容)因为分支被移动到存储库中的不同位置而不是使用svn mv.但是,很难想象这是问题的原因,因为它svn blame可以处理仓库中的每个其他文件.

lee*_*777 1

我唯一能想到的是,从修订版 1000-9000 开始,Foo.cs 将“svn:mime-type”属性设置为“application/octet-stream”。然而,由于 r9000 Foo.cs 没有这样的属性,因为它是(并且始终是)文本文件。

我想这就是你的答案。在使用 Subversion 1.6 进行实验时,每当我在历史记录中设置为 时svn:mime-typeapplication/octet-stream我都会Skipping binary file从得到svn blame

如果Subversion检测到该文件具有非文本内容,则它可能已自动设置该属性。

我想不出一个好的答案来解决这个问题。您可以删除并重新添加该文件。这将截断历史记录,但至少svn blame适用于较新的修订版。