プロジェクトで svn から git に切り替える過程にあります。
ここで、移動したい svn リポジトリの 1 つに、保持したい非常に長い履歴があります。だから私はそれで git-svn clone をやってみましたが、うまくいきました。
ただし、svn リポジトリはその歴史の中で 3 回移動されています。
リポジトリ全体のレイアウトは次のようになります。
repo_root/
trunk/
projA_v1 (existed in the beginning)
projA_v2 (then moved to v2)
projA_v3 (and finally to v3)
projB
projC
branches/
projA_b1
projA_b2
projB_b1
projC_b1
tags/
projA_t1
projB_t1
projC_t1
このプロジェクトは、最初は projA_v1 と呼ばれ、次に v2 に移行し、最後に v3 に移行しました。
git-svn clone を実行すると、2 から 3 への最後の移動以降の履歴のみが取得されます。svn でログを確認すると、履歴全体が正しく表示されます。
履歴全体を取得するためにできることはありますか? そこには約 3 年間の失われた歴史があります。
更新: から、リポジトリ全体で git-svn clone を実行しようとしましたrepo_root
。私はそれを行うことができると思ったし、Detach (move) subdirectory into separate Git repositoryの指示に従って、結果の git リポジトリをプルーニングすると、うまくいくようです。(少なくとも剪定ビット)
しかし、まだ問題があります。ブランチは正しく動作しません.ブランチの1つのコンテンツはトランク全体のコピーではなく、トランクの一部にすぎないため、git-svnがそれらをブランチとして認識しないためだと思います. 何か案は?
理想的な世界では、projA_v1 と v2 からの履歴、および projA ブランチとタグの履歴を含む、projA のみで構成されるレポになります。