2016-12-06 7 views
-1

非常に大きなSVNリポジトリのgit svnクローンを作成しようとしています。以前の移行では、git svnクローンを使用して完全な分岐、タグ、および履歴が維持され、すべてがうまくいっています。しかし、このスクリプトはかなりの時間実行された後にエラーを投げます:libsvn:メモリ不足 - アプリケーションの終了.18 [メイン] perl 13884 cygwin_exception :: open_stackdumpfile:スタックトレースをperl.exe.stackdumpにダンプする 私はどこでも研究しましたが、誰かが私が何か提案大きなSVNリポジトリをGitに移行する際にメモリ不足例外が発生する

+0

これは1回限りの変換で、あとでGitだけを使用しているのですか、GitクローンからSVNにコミットしたいのですか? – Vampire

+0

これは1回の変換であり、いったんGitに移動すると、私たちはGitだけを使用し、SVN – Anshul

答えて

1

git-svnをいただければ幸い同様のエラーが発生しましたthis.Ifに関連する何かがリポジトリのワンタイム変換のない適切なツールである見つけることができませんでした。 Gitを既存のSVNサーバのフロントエンドとして使用したい場合は、ではなくを使用してください。git-svnを使用してください。svn2gitこれははるかにこのユースケースに適しています。 OOMエラー。

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

svnevereverからhttp://blog.hartwork.org/?p=763までは、SVNリポジトリの履歴をGitに移行する際の履歴を調べるのに最適なツールです。 git-svn(またはあなたのケースでは、間違ったsvn2gitが)で開始することが容易である


にもかかわらず代わりgit-svnのKDE svn2gitを使用して、なぜ、ここではさらにいくつかの理由があることは、その柔軟性以外にも、優れている:

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

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

関連する問題