3

私は汎用のsvngit->移行スクリプトを作成中です。これにより、標準よりもはるかに多くのことが可能になります。git svn cloneスクリプトの1つの段階で、移行リポジトリ内のすべてのブランチの出力git svn show-externalsを確認しています。git svn show-ignoreこれらのコマンドの出力に応じて、さまざまな手順を実行します。

私の問題は、スクリプトの残りの部分がかなり高速に実行される一方で、特にこれら2つのコマンドが実行時間の大部分を占めているように見えることです。場合によってgit svn show-externalsは、実行に10分以上かかることがあります(約5000ファイルを含むリポジトリで)。10以上のブランチを持つこのサイズのリポジトリで実行する場合、これがかなり加算されることを想像できます。

この操作の実行に時間がかかるのはなぜですか?実行を高速化するために私にできることはありますか?

4

1 に答える 1

4

「gitsvnshow-ignore」は、ディレクトリごとに追加のSVNリクエストを実行します。

移行の目的で、SubGitツールを確認することをお勧めします。リビジョンごとにsvn:ignore-> .gitignoreを変換します(また、svn:eol-style、tagsなども変換します)。唯一の制限:リポジトリへのローカルアクセスSVNが必要です。したがって、 svnrdumpツールと組み合わせて使用​​することができます。ローカルにSVNrepostioryがある場合、移行は1つのステップで実行されます。

$ subgit install path/to/svn/repo
于 2012-05-21T16:31:40.790 に答える