问题
如何使用 git-svn 从 Subversion 存储库创建浅拷贝,例如,如何仅提取最后三个修订版?
如果您使用选项,该git clone命令可以从 Git 存储库中获取最后 n 个修订--depth,即您获得存储库的浅拷贝。例子:
git clone
--depth
git clone --depth 3 git://some/repo myshallowcopyrepo
git-svn 有类似的选项吗?
到目前为止我的发现
到目前为止,我只找到了要-rN在哪里N进行修订的选项。例子:
-rN
N
git svn clone -rN svn://some/repo
根据文档,有可能使用-r$REVNUMBER:HEAD. 我尝试了以下方法来获取返回错误消息的最后 3 个修订。
-r$REVNUMBER:HEAD
$ git svn clone --prefix=svn/ -s -rHEAD~3:HEAD http://some/svn/repo . revision argument: HEAD~3:HEAD not understood by git-svn
所以我用HEAD~3第三个但最后一个修订的实际编号替换了 534。这有效,但这需要我首先找出第三个但最后一个提交的修订号。
HEAD~3
$ git svn clone --prefix=svn/ -s -r534:HEAD http://some/svn/repo .
文档
gitclone
git-svn
您已经发现了在 Git-SVN 中指定浅层克隆的最简单方法,方法是指定要在 ( -r$REV:HEAD) 处开始克隆的 SVN 修订号。
-r$REV:HEAD
例如:git svn clone -s -r1450:HEAD some/svn/repo
git svn clone -s -r1450:HEAD some/svn/repo
Git 的数据结构基于有向无环图 (DAG) 中的指针,这使得回溯n提交变得微不足道。但在 SVN(因此在 Git-SVN)中,您必须自己找到修订号。
n