2010-02-26 32 views
5

我在Subversion版本庫中有一個名爲「Foo.cs」的文件。當我運行命令svn blame Foo.cs輸出看起來是這樣的:爲什麼`svn責備Foo.cs`返回的所有行都是空白的?

1000 dave 
1000 dave 
2000 dave 
2000 dave 
9999 dave 
1000 dave 
9999 dave 

,我能想到的唯一的事情是,從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適用於回購協議中的其他每個文件。

回答

1

我能想到的唯一的事情是,從修訂版1000-9000開始,Foo.cs將「svn:mime-type」屬性設置爲「application/octet-stream」。但是,由於r9000 Foo.cs沒有這樣的屬性,因爲它(並且總是)是一個文本文件。

我認爲這是你的答案。使用Subversion 1.6進行試驗,任何時候我有一個歷史版本svn:mime-type設置爲application/octet-stream,我從svn blame得到Skipping binary file

顛覆may have set the property automatically,如果它檢測到該文件具有非文本內容。

我想不出一個很好的答案來解決這個問題。您可以刪除並重新添加文件。這將截斷歷史記錄,但至少svn blame將適用於較新的修訂版。

0

您可能會通過查看更改數字9999和2000中發生的情況來找到答案。或者,只需查看文件的所有更改(svn -log -v Foo.cs)並查看是否有其他任何屬性可能已更改。

相關問題