3

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

SVN リポジトリにアクセスするために git-svn を使用しています。SVN リポジトリは、多くのプロジェクトを保持するためのフォルダーの巨大なツリーを含む構造を持っていました。昨年、レイアウトを再編成し、より標準的なトランク/タグ/ブランチ レイアウトにフラット化しました。その結果、リポジトリ内のすべてのファイルが 2010 年 5 月 17 日に移動されました。

Eclipse の subclipse SVN クライアントを使用して、Team->Show Annotationを実行すると、期待どおりにファイルの履歴が表示されます。2009 年に変更されたコード行には、author / date / checkin コメントで正しく注釈が付けられています。

ただし、git blamegit-svn を使用して複製した git リポジトリでは、あまり役に立ちません。2010 年 5 月 17 日より前に変更されたすべてのコード行の注釈は、me / date 17th May 2010 / comment "reorganizing repository..." です。

情報はまだ残っていると思いますが、git blameそれを表示する方法はありますか? 私は非常に投機的に試みgit blame -C -C -C...ましたが、成功しませんでした。

4

1 に答える 1

0

古いコミットが git リポジトリにまったく表示されますか? おそらく、svn の再編成が大きすぎて git-svn が追随できなかったのでしょう。5 月 17 日の移動に svn リビジョンgit svn find-rev r12345を見つけ、その番号を使用して対応する git ハッシュを見つけます (存在する場合)。次に、そのハッシュを git checkout して、関心のあるファイルが含まれているかどうかを確認します。

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

于 2012-02-18T09:29:26.493 に答える