我正在尝试使用 GIT-SVN,但在启动时遇到问题。我可以克隆 svn 存储库(或使用 git svn init 然后使用 git svn fetch),不会出现任何错误,但在命令停止处理后,git 存储库为空,并且没有本地主分支。
我的 svn 存储库位于这里:
https://localhost:8443/svn/projects https://localhost:8443/svn/projects
项目文件夹的结构如下:
/projectA/trunk
/projectA/branches
/projectA/tags
/projectB/trunk
/projectB/branches
/projectB/tags
(注意,分支和标签文件夹是空的,主干文件夹包含文件)。
我正在尝试克隆projectA,所以我使用了以下命令:
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
报告如下:
遥控器/后备箱。
gitFolder 中有一个 .git 文件夹,但没有其他文件夹。我也尝试过git svn init
and git svn fetch
代替git svn clone
但最终结果是一样的。
有什么想法吗?提前致谢。
Update:
刚刚意识到最后一行(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-protocol 与 VisualSVN 结合使用非常简单:
- 转到 VisualSVN 的 bin 文件夹
- 输入“svnserve --daemon”
您可以使用 TortoiseSVN 并将其指向您的存储库来检查一切是否正常: svn://localhost/repositories/myProject