编辑:解决方法。现在我们了解问题,这是解决方案:做
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
而这个命令什么都不做:
10分钟后我放弃了
我已经检查过svn存储库是否正常工作,因为git svn fetch
在我的git存储库中完美运行,我只跟踪主干。
这是一个错误还是我错过了什么?
在获取第一个相关提交后,它变得冗长。
但是在获取提交之前,您可以通过检查.git\svn\.metadata
文件来确保命令正常工作。
如果使用Git for Windows,请确保从2.20.1升级到之前的(2.20.0),下一个(2.21.0)或任何其他。提到的版本有一个bug making "git svn fetch" hang,后来修复。
尝试添加--log-window-size=5000
参数。
如果repo有大量的提交,git-svn默认会一次通过它们100
。把它搞砸可以极大地提高它的速度。
对于那些对上述解决方案不满意的人:
问题:svn + ssh://svn.xxxxxxx.com/svnroot/strategy/products/mysoftware挂起:
[MyLocalRepositoryPath]中初始化的空Git存储库
解决方案:插入
用户名@
在svn url前面
SVN + SSH://[email protected]/svnroot/strategy/products/mysoftware
我已将fetch属性更改为:refs / remotes / git-svn并且它适用于我