2017-11-07 9 views
0

複数のプロジェクトを含む従来のsvnリポジトリを複数のgitリポジトリに移動しようとしています。複数プロジェクトのSVNリポジトリをインポートしても、svn copyで作成されたすべてのファイルがインポートされない

私たちのリポジトリ設定はこれに似ています:https://daneomatic.com/2010/11/01/svn-to-multiple-git-repos/、そのポストの提案に従ってください - 時代遅れになって - 正しく分割リポジトリにつながります。

プロジェクトを別のリポジトリに分割する実際のプロセスは問題ありませんが、gitにsvnリポジトリをインポートすると、インポートが完了した後にいくつかのファイルとフォルダが存在しませんでした。

私は、SVNのログは、彼らはSVNのsvnツリー内の他の場所からコピーされなかったこと、および関係なく、私はfilter-branchを使用して、(そのようtrunkを指定するようgit svn cloneを実行しているときで実験何のフラグが示されたファイルとフォルダにそれを突き止め同様の)git-svnは、svn cpを解決することができないため、インポートが完了した後でファイルとフォルダが見つからないことがあります。

私の理論は、git svn importがsvnコピーを "解決"できないということです。リポジトリ全体を完全にインポートしても、問題のファイルはまだ失われていて、定期的なsvnのチェックアウトと比較すると、いくつかの不足しているファイルやフォルダを特定できます。

誰もがこのような経験を持っていますか?git svnで使用できるフラグ、またはこのようなインポートを完了するためのツールの提案はありますか?私は歴史をいくらか損なわずに輸入を完了したいと思っています。

答えて

1

ワンタイム移行の場合git-svnではなく、レポジトリまたはリポジトリの一部の変換用の適切なツールです。 Gitを既存のSVNサーバーのフロントエンドとして使用する場合は便利ですが、ワンタイムコンバージョンの場合はではなくを使用してください。git-svnを使用しますが、svn2gitはこのケースに適しています。

svn2gitというツールがたくさんありますが、おそらく最も良いのはhttps://github.com/svn-all-fast-export/svn2gitのKDEです。そのsvn2gitツールを使用することを強くお勧めします。それは私がそこで利用できると知っている最高です、そして、それはあなたがそのルールファイルでできることに非常に柔軟です。

svn2gitのルールファイルは、存在する可能性のある複雑な履歴を含め、現在のSVNレイアウトから必要な結果を生成し、複数のGitリポジトリから1つのSVNリポジトリを生成することや、あなたが好きなら、SVNは一回でGitリポジトリをきれいにレポに入れます。

svnevereverからhttp://blog.hartwork.org/?p=763までは、SVNリポジトリの履歴をGitに移行する際の履歴を調べるのに最適なツールです。

  • 歴史ははるかに良いとクリーンな再構築されます。


    にもかかわらずgit-svnは、ここでは、優れている、その柔軟性のほかに代わりgit-svnのKDE svn2gitを使用して、なぜいくつかの更なる理由がありで開始することが容易ですsvn2git(正しいものが使用されている場合)これは、特に分岐やマージなどの複雑な履歴の場合に当てはまります

  • タグは実際のタグであり、Gitのブランチではありません
  • タグは、デフォルトでのみフェッチされた枝を指しているタグなど、あなたがコマンドに --tagsを与えるまで、その正常な fetchがそれらを得ることはありません、余分な空はまたそれらの枝の一部ではない可能どのコミット含ま git-svn
  • もフェッチされます。彼らは
  • に属しどこ適切svn2gitタグを使用すると、SVNでレイアウトを変更した場合、あなたが簡単にあなたはまた、簡単に複数のGitリポジトリに1つのSVNリポジトリを分割することができsvn2gitと歴史最終的に
  • を失うことになるgit-svnで、svn2gitでこれを設定することができます
  • 又は容易1つのGitのリポジトリに同じSVNルートにおける複数のSVNリポジトリを組み合わせる
  • 変換が速く正確svn2gitgit-svn
0123よりも無数倍であります

git-svnが悪く、KDE ​​svn2gitが優れている理由はたくさんあります。 :-)

+0

私はKDE svn2gitツールを見ましたが、ドキュメンテーションはKDEマイグレーションに合わせて作られているようでした。あなたの答えは実際にはさらに調査する価値があるようです。私はそれを実行したときに私は戻って報告します。 –

+0

私はこのツールをダウンロードし、リポジトリのコピーで正常に実行できました。驚くほど高速ですが、私が知る限り、指定したリポジトリの場所に '.git'フォルダの内容を作成するだけです。ファイルを含む実際のリポジトリを取得するにはどうすればいいですか?私は一歩足りませんか? –

+0

これは絶対に一般的なもので、KDEにはあまり適していません。たぶんあなたはチェックアウトに間違っていますか?私はそれを最後に使ってからしばらくしています。私はそれがあなたが次にクローンすることができる裸のレポを産むかどうか、あなたがチェックアウトしなければならない非裸のものを産むかどうかは十分にはわかりません。 – Vampire

関連する問題