Subversion リポジトリから最後の n リビジョンを git-svn でクローンするにはどうすればいいですか? 質問する

Subversion リポジトリから最後の n リビジョンを git-svn でクローンするにはどうすればいいですか? 質問する

問題

Subversion リポジトリから git-svn を使用して浅いコピーを作成するにはどうすればよいでしょうか。たとえば、最後の 3 つのリビジョンのみをプルするにはどうすればよいでしょうか。

git cloneオプションを使用すると、コマンドは Git リポジトリから最後の n 個のリビジョンを取得できます。つまり--depth、リポジトリの浅いコピーを取得します。例:

git clone --depth 3 git://some/repo myshallowcopyrepo

git-svn にも同様のオプションはありますか?

これまでの私の発見

これまでのところ、プルするリビジョンが-rNどこにあるかというオプションしか見つかりませんでした。例:N

git svn clone -rN svn://some/repo

ドキュメントによると、 を使用する可能性があります-r$REVNUMBER:HEAD。エラー メッセージが返された最後の 3 つのリビジョンを取得するために、以下を試しました。

$ git svn clone --prefix=svn/ -s -rHEAD~3:HEAD http://some/svn/repo .
revision argument: HEAD~3:HEAD not understood by git-svn

そこで、3 番目で最後のリビジョン 534 の実際の番号に置き換えました。HEAD~3これはうまくいきましたが、まず 3 番目で最後のコミットのリビジョン番号を把握する必要があります。

$ git svn clone --prefix=svn/ -s -r534:HEAD http://some/svn/repo .

ドキュメンテーション

git クローン

git-svn

ベストアンサー1

Git-SVN でシャロー クローンを指定する最も簡単な方法は、クローンを開始する SVN リビジョン番号を指定することです ( -r$REV:HEAD)。

例えば:git svn clone -s -r1450:HEAD some/svn/repo

Git のデータ構造は、有向非巡回グラフ (DAG) 内のポインタに基づいているため、コミットをさかのぼって確認するのは簡単ですn。ただし、SVN (つまり Git-SVN) では、リビジョン番号を自分で見つける必要があります。

おすすめ記事