我在我们的svn存储库中使用git-svn。然而,回购是巨大的,所以我首先检查项目,如下:
git svn clone svn://svn.server.com/project -s -r 12000:HEAD
所以,现在我只修改了当前版本的12000。我想查看一些更多的修订,但以下什么都不做:
git svn fetch -r 11000:HEAD
有没有办法获取较旧的版本?
我在我们的svn存储库中使用git-svn。然而,回购是巨大的,所以我首先检查项目,如下:
git svn clone svn://svn.server.com/project -s -r 12000:HEAD
所以,现在我只修改了当前版本的12000。我想查看一些更多的修订,但以下什么都不做:
git svn fetch -r 11000:HEAD
有没有办法获取较旧的版本?
我不认为这是真的支持,这样做会改变整个存储库,这通常被认为是一件坏事。 (虽然纯粹的git非常乐意通过这样做让你自己在脚下射击)我甚至在摆弄了.git / svn中的数据之后也没有办法做到这一点。您可以检查未检索到的旧分支和标记的修订版,但是一旦检索到分支,就无法返回并获取更多历史记录。
我等了6个小时才得到一个50k版本的回购克隆,所以我知道你的痛苦。如果你真的想要这么多的历史,我建议让它一夜之间运行并抓住整个事情。
我在git和git-svn方面不够专业,无法充分利用它,但是你 应该 能够 git svn clone
你的svn进入一个新的repo,将该repo添加为远程并从你的起始repo中获取它,然后在旧repo中的第一次提交之间添加一个嫁接点(r12000
)和 亲 的 r12000
在新的回购。这将把两段历史融合在一起。然后,可能需要更多补丁来保持git-svn正常运行。
它似乎 这个帖子 有一个答案:基本上,你不能从克隆开始,而是从init和fetch开始。我自己没试过......
我使用--fetch-all“svn-git fetch --all”