1

会社のsvnリポジトリのsvn-deletedパスにあるソースについて調査する必要があります。私はannotateで多くの作業を行う必要があるので、mercurialまたはgitの履歴を持ちたいと思っています。私はこれまでに試しました:

  • hgsubversiongit-svn:どちらのプログラムでも、パスが存在する古いリビジョンが必要であることを指定する方法が見つかりません。どちらもsvn HEADを試して、パスがそこで削除されるため失敗します。
  • hgsvn:古いパス(ペグリビジョンを含む)を見つけますが、必要なパスがもう存在しないsvn HEADリビジョンからログを取得するため、初期更新を実行できません。

では、削除されたsvnパスをgitまたはhgにインポートする方法はありますか?

4

3 に答える 3

1

パスがリビジョン117で削除されたとすると、hgsubversionでは次のように機能するはずです。

hg clone -r 116 http://svn.example.com/whereever

(私は最近これをテストしていませんが、動作するはずです。動作しない場合はバグです…)

また、khmarbaiseが主張したことにもかかわらず、Mercurialのブランチを閉じても、そのブランチは履歴から削除されないことに注意してください。引数が指定されてhg headsいない限り、ブランチを閉じると、ブランチが非表示になります。-c/--closed

于 2010-12-08T14:59:54.370 に答える
0

私の知る限り、gitもhgも削除されたパスを処理できません。gitでブランチを削除すると、そのブランチは履歴から削除されます。

于 2010-12-08T11:34:54.743 に答える
0

なぜgitまたはhgが必要なのか、あなたの質問からは明らかではありません。を使用できますsvn annotate。SVNで削除されたオブジェクトを分析することは問題ではありません。次のように、ペグリビジョンを使用できます。

svn annotate http://example.com/svn/somefile@321

これは、リビジョン321の後で、一部のファイルが削除または名前変更された場合でも機能します。

編集:それについて考えた後、リポジトリのローカルコピーがあるとアノテーションが大幅に高速化される可能性があるため、hg/gitが必要だと思います。svnsyncを使用してローカルファイルシステムにミラーリポジトリを作成し、 file:///URLを使用してそれにアクセスすることにより、 svnでも同じことを実現できます。

于 2010-12-08T13:15:33.027 に答える