使用Cygwin下的git 2.8.2和svn 1.9.4,在使用git svn clone
克隆我们的存储库时,我在某个提交时遇到了问题:
r3640 = eb94... (refs/remotes/svn/trunk)
Found possible branch point: https://.../repo/<branchname> => https://.../repo/branches/<branchname>, 3641
Initializing parent: refs/remotes/svn/<branchname>@3641
Error from SVN, (175009): Malformed network data: The XML response contains invalid XML: Malformed XML: no element found
观察#1:使用-r3600:HEAD
进行克隆时,即从最近足够的提交中进行克隆,操作成功。繁琐的实验表明,在有问题的提交之前,从大约100次修订开始克隆时会出现问题。
观察#2:这似乎只发生在上述表单的分支上:在repo root repo/<branchname>
中错误地创建,然后移到repo/branches/<branchname>
问题是什么以及如何解决?
答案 0 :(得分:5)
解决方案:放大--log-window-size
值(默认值:100)。
警告:较大的窗口大小禁止使用许多新添加的文件获取提交:
受影响的提交实际上有8430个新文件。
这一切都在Cygwin之下,我无法在Linux上重现这些问题,因此您的里程可能会有所不同。
我注意到导致错误的观察修订距离与git svn fetch --log-window-size
选项的默认值之间存在相似性:两者都是100。
使用4000的日志窗口解决了我的问题,others使用了更大的值来加速初始克隆/获取操作。
我在问题修订之前克隆了10个修订并使用--log-window-size=1
验证了这个问题 - 它再次失败。
知道这是预期行为还是git-svn方面的错误会很有趣,因为--log-window-size
被记录以加速克隆/获取操作,而不是修复某些分支问题的必要性