13

git を使用して svn リポジトリのクローンを作成したいのですが、残念ながら、svn checkoutすべての外部を含むリポジトリを取得する場所は、外部をgit svn clone含まないリポジトリのみを取得します。経由でsvnリポジトリから外部を取得するにはどうすればよいgit svnですか? 派手なことはしたくありません。外部で完全なレポを取得するだけです。

4

3 に答える 3

10

git-svn は外部をサポートしていませんが、git-svn の代わりにSmartGitを試すことができます。svn:externals をサポートし、.gitsvnextmodules ファイルに変換してモジュールとして表示します。唯一の制限: 既存の git-svn リポジトリを開くのではなく、SmartGit を使用してリポジトリを複製する必要があります。

于 2012-07-17T10:38:57.070 に答える
2

私はSVNリポジトリにアクセスするためのフロントエンドとしてgitを使用しています。SVNの構造は一般的に非常に単純で、外部ディレクトリに外部ディレクトリがあり、サブディレクトリに外部ディレクトリがないトップレベルのディレクトリがあります。また、外観は、一度追加されると実際にはあまり変化しません。したがって、次のようなものを想定します。

git svn clone X
cd X

次のコマンドを使用して、すべての外観を取得することに成功しました。

git svn show-externals | \
 perl -ne 'if (/^\/(.*) (.*)/) { print "git svn clone $1 $2\n"; }' | \
 bash

外部のより複雑な構造には、より複雑なperlスクリプトが必要になると思います。また、外観が変わった場合は、同様のことをもう一度行う必要があります。

于 2013-01-24T00:33:13.930 に答える