2011-08-08 14 views
2

git blameは、レイアウトが再構成されたSVNリポジトリのすべての履歴を表示していません。再編成されたSVNリポジトリのGit blame

私はgit-svnを使ってSVNリポジトリにアクセスしています。 SVNリポジトリは、多くのプロジェクトを保持するための膨大なフォルダツリーを持つ構造を使用していました。昨年私は、レイアウトをより標準的なトランク/タグ/ブランチレイアウトに再構成して平坦化しました。結果は、私ががTeam->注釈表示行うことができ、リポジトリ内のすべてのファイルがEclipseのからSubclipseのSVNクライアントを使用して5月17日、2010年

に移動したことがあり、それがファイルとしての歴史を示してい2009年に変更されたコード行には、作成者/日付/チェックインのコメントが正しく記されています。

しかし、私がgit-svnを使ってクローンしたgitリポジトリのgit blameはあまり役に立ちません。 2010年5月17日以前に変更されたコードのすべての行について、注釈は:me/date 17th 2010/comment "reorganizing repository ..."です。

私は情報がまだあると推測していますが、git blameに表示する方法はありますか?私は非常に投機的にgit blame -C -C -C...を試しました。

+0

svnがファイルの名前を変更したときに、これらのコミット中に何が起こりますか? 1つのコミットが_oldName_を削除し、同じ内容の_newName_を追加しますか? – Andy

+0

はい - 削除と追加はどちらも1回のコミットで行われます。メモリから、私はEclipseの "SVNリポジトリ"ビューからリポジトリの再編成を行ったと思います。 –

+0

git blameを試してみる-C100 –

答えて

0

もっと古いコミットがgit repoに表示されていますか?おそらくあなたのsvnの再編成がgit-svnが追随するには大きすぎたのかもしれません。 svnリビジョンの前に移動してください。それに対応するgitハッシュがある場合は、その番号でgit svn find-rev r12345を探してください。次に、そのハッシュをgit checkoutし、興味があるファイルがその中にあるかどうかを確認します。

git-svnに、あなたのレポが「標準的な」トランク/ブランチ/タグレイアウトを使用していると言えば、おそらく他のレイアウトを理解できません。 git-svnインポートを2段階でやり直す必要があるかもしれません.1つは古いレイアウト用、もう1つは新しいレイアウト用です。これを達成するには、git svn fetchの-r引数を使用して、特定の範囲のリビジョンのみを取得します。

関連する問題