私は非常にぐらいの大きさのSVNリポジトリの変換に取り組んでいます。 〜5つの異なる成果物を含む約50のプロジェクト(一部のプロジェクトはすべての製品で共有され、他のプロジェクトは2つの製品のみで共有され、多くのプロジェクトは特定の製品に固有です)。ここに約15年のコード履歴があります(〜16K svnリビジョン)。svn:externalsをgitタグに変換する方法
SVNに変換した後、早めにSVN:externalsを使用していくつかのリリースをタグ付けしました。以下のように(チェックアウト後のディスク上の)私たちのコードの構造は次のとおりです。
product1_root
-> shared_project
-> project_1
-> project_2
-> project_3
product2_root
-> shared_project
-> project_4
-> project_5
次のようにSVNで構造がある(B/T/TR)=標準支店/タグ/トランクサブディレクトリ:
product1_root (b/t/tr)
shared_project (b/t/tr)
project_1 (b/t/tr)
project_2 (b/t/tr)
project_3 (b/t/tr)
product2_root (b/t/tr)
project_4 (b/t/tr)
project_5 (b/t/tr)
externalsを使用するときは、product1_rootおよびproduct2_rootプロジェクトで外部/外部/外部project2/3とshared/project4/5をそれぞれセットアップして、ディスク上に上記の構造を作成します。その結果、リリースを行うときに、product1/2_rootプロジェクトのみがタグを受け取りました(SVN外部が適切なバージョンのサブプロジェクトを自動的に取得します)。
私たちは後で、すべてのプロジェクトに明示的にタグを付け、ビルドのためにそれらをすべて引き出すためにスクリプトを使用することで、外部を取り除きました。
product1_rootからproject_1、project_2、project_3、およびshared_projectにタグを伝播させて、新しいgitリポジトリの残りの履歴と一致するようにする方法はありますか?
または、これを移行前または移行後のタスクのいずれかに取り組もうとしていますか?
私はたくさんのツールを見てきました。それらはすべてsvn:externalsを完全に無視するか、サブモジュールに変換しようとしています。
yay! (なぜSEはこれを許可するのでしょうか?)自由に理由を述べてください。ありがとう。 – kinar