为什么“git svn fetch”命令似乎被卡住而什么也没做?

时间:2012-06-04 09:20:12

标签: git git-svn

编辑:解决方法。 现在我们了解问题,这是解决方案:做

git svn fetch -r REVISION:HEAD

其中REVISION是分支创建的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,也不创建文件

我在10分钟后放弃了

我已经检查过svn存储库是否正常工作,因为git svn fetch在我的git存储库中完美运行,我只跟踪主干。

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

5 个答案:

答案 0 :(得分:23)

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

但是在获取该提交之前,您可以通过检查.git\svn\.metadata文件来确保命令正常工作。

答案 1 :(得分:6)

如果将Git用于Windows,请确保从2.20.1升级到上一个(2.20.0),下一个(2.21.0)或任何其他版本。提到的版本有一个bug making "git svn fetch" hang,后来已修复。

答案 2 :(得分:5)

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

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

答案 3 :(得分:1)

对于那些对上述解决方案不满意的人:

问题: SVN + SSH://svn.xxxxxxx.com/svnroot/strategy/products/mysoftware 坚持:

  

[MyLocalRepositoryPath]

中初始化的空Git存储库

解决方案:插入

  

用户名@

在svn url前面

  

SVN + SSH://username@svn.xxxxxxx.com/svnroot/strategy/products/mysoftware

答案 4 :(得分:0)

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