2012-06-04 94 views
28

编辑:解决方法。 现在我们明白了这个问题,这里是解决方案:做为什么“git svn fetch”命令似乎卡住了,什么都不做?

git svn fetch -r REVISION:HEAD 

,其中修订了svn的数量提交这个分支创建的。


我一直幸福使用Git SVN对我的项目有一段树干工作,但现在我还需要跟踪的分支。

我试图初始化新的存储库这样做与

git init 
git svn init https://svnserver/svn/repository 

然后我编辑的本地配置文件,以反映我的svn库的结构:

[svn-remote "svn"] 
    url = https://svnserver/svn/repository 
    fetch = path/to/trunk:refs/remotes/trunk 
    branches = path/to/branches/*:refs/remotes/branches/* 

然后我跑

git svn fetch 

而这个命令少了点什么:

  • 它不会终止
  • 它不会在控制台输出
  • 它不使用任何CPU写任何东西,也没有创建文件

我放弃前十分钟

后我已经检查过svn存储库正在工作,因为git svn fetch在我的git存储库中完美工作,我只跟踪中继。

这是一个错误还是我错过了什么?

+0

节省时间,谢谢!与-r几乎是即时的,即使我们的svn回购有几十个活跃的分支机构和悠久的历史(超过20k次提交)。 – djKianoosh

回答

22

它在获取第一个相关提交后变得冗长。

但是,直到它提取该提交,您可以通过检查.git\svn\.metadata文件确保命令正常工作。

+1

它可能需要永远看到“第一个相关的提交”,所以你需要耐心等待并离开它,直到你看到一些东西......不要觉得无聊,像我一样CTRL + C! :D –

+0

检查OP所做的编辑:如果您知道“第一个相关提交”的修订号,则可以加快此过程。 –

+0

在我看来,这个过程什么都不做。我在SVN回购所在的机器上运行这个,但CPU甚至没有达到5%左右。就好像在流程开始时有一个小时的睡眠声明。 –

2

尝试添加--log-window-size=5000参数。

如果repo有大量提交,git-svn默认会一次通过它们100。撞上它可以极大地提高速度。

0

我已将fetch属性更改为:refs/remotes/git-svn,它适用于我