Git Svn 获取更多版本

11

我正在使用git-svn管理我们的svn代码库。然而,该代码库非常大,因此我首先这样检出了项目:

git svn clone svn://svn.server.com/project -s -r 12000:HEAD

现在,我只有从第12000个版本到当前版本的修订版。我想检出更多的修订版,但以下操作没有任何作用:

git svn fetch -r 11000:HEAD

有没有一种方法可以获取早期版本的内容?


11000版本是否不是当前HEAD的父版本? - Mark van Lent
4个回答

9
我认为这并不是被支持的,这样做会重新定位整个存储库,通常会被认为是一件坏事。(尽管纯git很乐意让你这样做) 我没有找到一种方法来做到这一点,即使在.git/svn中调整数据后也不行。您可以检出您没有检索过的旧分支和标记修订版,但是一旦您检索了一个分支,就无法返回并获取更多历史记录。
我等了6个小时才克隆了一个50k修订版的repo,所以我知道你的痛苦。如果你真的想要那么多历史记录,我建议你让它在夜间运行并抓取整个存储库。

我的项目主干已有超过60万个修订版本,即使经过15个小时,我也无法克隆它。我不知道该怎么办。 - old_soul_on_the_run

2

看起来这篇文章有一个答案:基本上,你不能从clone开始,而是要使用init和fetch。我自己还没有尝试过(但很快会)...


2

我对git和git-svn的专业知识不足,但是你应该能够使用git svn clone将你的svn克隆到一个新的仓库中,将该仓库添加为远程仓库并从起始仓库中获取它,然后在旧仓库的第一次提交(r12000)和新仓库中r12000的父提交之间添加一个嫁接点,这将使两个历史片段融合在一起。然而,可能还需要进行一些修补工作,以确保git-svn的正常操作。


-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接