编辑:解决方法。 现在我们了解问题,这是解决方案:做
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存储库中完美运行,我只跟踪主干。
这是一个错误还是我错过了什么?
答案 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并且它适用于我