GIT-SVN克隆命令执行无误,但本地主分支缺失。

6
我正在尝试使用GIT-SVN,但在启动过程中遇到了问题。我可以克隆svn存储库(或使用git svn init然后git svn fetch)而没有任何错误,但是命令停止处理后,git存储库为空,没有本地主分支。
我的svn存储库位于这里: https://localhost:8443/svn/projects 项目文件夹的结构如下:
/projectA/trunk
/projectA/branches
/projectA/tags

/projectB/trunk
/projectB/branches
/projectB/tags

(注意,分支和标记文件夹为空,主干文件夹包含文件。)
我试图克隆项目A,所以我使用了这个命令:
git svn clone --username myUsername https://localhost:8443/svn/projects/ gitFolder --trunk projectA/trunk --branches projectA/branches --tags projectA/tags

处理需要约10分钟,并将所有文件名输出到屏幕上。最后一行看起来是这样的:
r233 = 2bfb031dda74e0ae8340688892197d647729b256 (refs/remotes/trunk)

现在,如果我切换到gitFolder并输入git log,我会得到以下结果: 致命错误:默认修订“HEAD”不好。
git branches -a报告如下:
remotes/trunk。
在gitFolder中有一个.git文件夹,但没有其他文件。我也尝试了git svn init和git svn fetch而不是git svn clone,但最终结果是相同的。
有什么想法吗?提前感谢您。
更新:
刚才意识到,最后一行(r233 = 2bf...)必须指向修订号。因此,最后处理的svn修订版本是233。我已经多次重新测试过这个问题,发现git-svn克隆总是在修订233之后停止。问题是原始svn存储库包含超过10100个修订版本。我不确定为什么git-svn会在应该之前停止,因为没有任何错误或警告。是否有日志文件可以提供更多线索?
另一个更新:
我成功解决了我的问题。原因是VisualSVN(版本2.1.3)和Msysgit(版本1.7.0.2-preview20100309)之间的通信问题。看起来在某个时刻,git-svn失去了与VisualSVN服务器的连接,未能显示错误并关闭。将协议从http更改为svn可以解决该问题。
使用svn协议与VisualSVN非常简单:
1. 转到VisualSVN的bin文件夹 2. 键入“svnserve --daemon”
您可以通过使用TortoiseSVN并将其指向您的存储库:svn://localhost/repositories/myProject 检查所有内容是否正常工作。

作为一个提示,对我来说,获取这个部分下载文件夹“没有分支”,意味着“不要运行git svn clone -s”(-s == --stdlayout)。去掉“-s”然后它就可以工作了。很奇怪,而且git甚至没有抱怨,只是创建了错误的目录... - rogerdpack
你是在已经存在的 SVN 目录中执行 git svn initgit svn fetch 吗? - IgorGanapolsky
3个回答

9
我已经解决了我的问题。这是由于VisualSVN(版本2.1.3)和Msysgit(版本1.7.0.2-preview20100309)之间的通信问题导致的。似乎在某个时刻,git-svn失去了与VisualSVN服务器的连接,并且未能显示错误并关闭。将协议从http更改为svn解决了该问题。
使用svn协议与VisualSVN非常容易:
1. 进入VisualSVN的bin文件夹 2. 输入“svnserve --daemon” 3. 您可以通过使用TortoiseSVN并将其指向您的存储库来检查所有内容是否正常:svn://localhost/repositories/myProject

4

如果我尝试像这样运行克隆命令,我会收到以下错误:在c:/dev/projects/.git/中初始化了空的Git存储库/ 错误0:在“/svn/projects/!svn/vcc/default”上的REPORT请求失败:路径“https://localhost:8443/svn/projects”未规范化;客户端存在问题。位于C:\Program Files\Git/libexec/git-core/git-svn line 5047 - Mikael Koskinen

0
我曾遇到与git svn clone类似的问题,但在我的情况下它(稍微隐藏)打印了一个错误。由于用户名不明显,所以不清楚是什么意思。但本质上是我的authors.txt文件中缺少作者姓名(或更好地说是SVN用户名)。
这解决了它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接