问题如何从Subversion存储库中使用git-svn创建浅表副本,例如,如何仅提取最后三个修订版?git clone如果使用选项--depth,则该命令可以从Git存储库获取最新的n个修订版本,即,您可以获得存储库的浅表副本。例:git clone --depth 3 git://some/repo myshallowcopyrepogit-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 .
3 回答
慕森卡
TA贡献1806条经验 获得超8个赞
通过在(-r$REV:HEAD)中指定要启动克隆的SVN版本号,您已经发现了在Git-SVN中指定浅表克隆的最简单方法。
例如: git svn clone -s -r1450:HEAD some/svn/repo
Git的数据结构基于有向无环图(DAG)中的指针,这使得回溯n提交变得微不足道。但是在SVN中(因此在Git-SVN中),您将必须自己找到修订号。
慕的地10843
TA贡献1785条经验 获得超8个赞
我发现自己经常使用以下内容从我们庞大的Subversion树中获取有限数量的修订版(我们很快将达到svn修订版35000)。
# checkout a specific revision
git svn clone -r N svn://some/repo/branch/some-branch
# enter it and get all commits since revision 'N'
cd some-branch
git svn rebase
找出分支从何处开始的好方法是执行分支svn log并找到分支上的第一个分支(执行时列出最后一个分支):
svn log --stop-on-copy svn://some/repo/branch/some-branch
到目前为止,在跟踪所有分支方面,我还没有真正发现值得解决的麻烦。克隆和svn和git不能像我想要的那样协同工作需要太多时间。我倾向于创建补丁文件,并将其应用到另一个svn分支的git克隆上。
- 3 回答
- 0 关注
- 836 浏览
添加回答
举报
0/150
提交
取消