5


0

`svn blame Foo.cs`によって返されるすべての行が空白なのはなぜですか?

Subversionリポジトリに「Foo.cs」という名前のファイルがあります。 コマンド `svn blame 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 mv`を使用する代わりに手動でリポジトリの別の場所に移動されたため、履歴は切り捨てられました( svn log Foo.cs`はこれよりも早く報告しません)。 しかし、「svn blame」がレポジトリ内の他のすべてのファイルで機能するため、これが問題の原因であると想像するのは困難です。

2 Answer


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`を取得します。

Subversion http://svnbook.red-bean.com/nightly/en/svn-book.html#svn.advanced.props.auto [プロパティを自動的に設定している可能性があります]、非テキストコンテンツを含むファイルを検出した場合。

状況を修正する良い答えは考えられません。 ファイルを削除して再度追加できます。 これは履歴を切り捨てますが、少なくとも「svn blame」は新しいリビジョンで機能します。


0


おそらく、変更番号9999と2000で何が起こったのかを見て答えを見つけるでしょう。 または、ファイルのすべての変更( svn -log -v Foo.cs)を見て、他のプロパティが変更されていないかどうかを確認します。