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

问题描述 投票:32回答:5

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

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存储库中完美运行,我只跟踪主干。

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

git git-svn
5个回答
24
投票

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

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


8
投票

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


7
投票

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

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


1
投票

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

问题:svn + ssh://svn.xxxxxxx.com/svnroot/strategy/products/mysoftware挂起:

[MyLocalRepositoryPath]中初始化的空Git存储库

解决方案:插入

用户名@

在svn url前面

SVN + SSH://[email protected]/svnroot/strategy/products/mysoftware


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.