如何git-svn克隆从Subversion存储库的最后n修订版本?

问题

如何使用git-svn从Subversion存储库创建一个浅拷贝,即如何仅拉取最后三个修订版本?

如果使用选项–depth,git clone命令可以从Git存储库获取最后n个修订版本,即您获得了存储库的浅拷贝。例:

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

所以我用HEAD〜3替换了第三个,但是最后修订534的实际编号。这样做,但是这需要我先找出第三个但是最后一个提交的修订版本号。

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

文档

git-clone

git-svn

最佳答案
您已经发现了通过在(-r $ REV:HEAD)指定要启动克隆的SVN修订版本号,在Git-SVN中指定浅克隆的最简单方法。

Git的数据结构是基于有向无环图(DAG)中的指针,这使得它很容易回退n个提交。但在SVN(因此在Git-SVN),你必须自己找到修订版本号。

转载注明原文:如何git-svn克隆从Subversion存储库的最后n修订版本? - 代码日志