当我尝试克隆远程svn存储库时,会出现奇怪的情况。
我输入时:
git svn fetch
Git将获取远程存储库的前20个版本,然后在20次修订后的某个时刻失败并只提示以下错误消息。
致命:写错误:参数无效
然后就坐在那里别无其他。重复相同的git init然后再次重新获取,会导致报告致命错误的位置完全相同。
任何想法可能导致这种情况发生?我目前正在运行以下版本:
TortoiseGit 1.2.1.0
git版本1.6.4.msysgit.0
答案 0 :(得分:3)
与Msysgit v1.7.2.3完全相同,这是截至9月29日的最新版本,并希望在此分享我的发现(谷歌出现了几个案例,但没有解决方案)。
尝试在repo上执行“git svn rebase”(过去曾经有过很多次),在一定数量的提交后,一直失败的是“致命:写入错误:无效的参数”。然后,同步将再次恢复到开头。
我相信这是Msysgit中的一个错误,涉及大型(ish)二进制文件和可用内存(在具有4GB RAM和大量免费高清空间的Win XP SP3系统上)。远程系统是CodePlex上的DotNetNuke SVN回购(https://dotnetnuke.svn.codeplex.com/svn)。
最初它在330KB“CHM”文件(~212th commit,r52261)上窒息。即使在禁用Avast AV,Google桌面等并验证repo文件夹上没有其他锁定进程之后,它也始终如此。重新启动后(但打开Outlook,Dreamweaver等),然后一致且反复失败~15.3MB DLL(~416次提交,同一版本)。
最后,在重新启动,禁用Avast,Carbonite和Google桌面并且不运行其他程序后,同步首次运行。
这似乎坚定地指出我的结论是它是一个可用的内存问题,可能与修订版中存在大量二进制文件和大量提交有关。请注意,我还尝试了“git fsck”,“git svn reset xx”并调整了“packSizeLimit”/“usedeltabaseoffset”配置变量,但没有成功。
乍得 - 可能是你遇到了同样的问题,重启是有帮助的,而不是升级。
答案 1 :(得分:2)
我的猜测是其中一个进程锁定了一些git也使用的文件。
注意:如果你杀死了那些进程而不是启动资源管理器,它们将再次启动。
答案 2 :(得分:1)
如果你排除了明显的原因(没有磁盘空间!),它可能会链接到远程SVN存储库的布局问题(分支不在分支子目录中,标签不在标签中,......) 。 有关此类SVN仓库的示例,请参阅Using git-svn with non-standard repository layouts。
其他需要解决问题的案例:SVN repo which has changed its layout since the last import
答案 3 :(得分:1)
我遇到此错误时使用的原始版本是: TortoiseGit-1.0.2.0-32bit.msi
由于从Git存储库中检出GIT源代码以及msysGit源代码,我找不到此错误消息的任何位置。
然后我更新到以下TortoiseGit版本:
TortoiseGit-1.2.1.0-32bit.msi
然后我在远程存储库上运行完全相同的git命令并且它工作正常。因此,回到之前与GIT和Windows的经验,如果将来有人遇到问题,我将总结以下程序。
1)检查更新,并在调试之前更新到最新版本 2)尝试在旧版本中进行调试无济于事,可以在新版本中修复该问题。
链接到我之前在这件事上的经验: Link
答案 4 :(得分:1)
杀死TGitCache为我工作。我不想说TortoiseGit真的不是TortoiseSVN的地方......太糟糕了。
答案 5 :(得分:0)
我遇到了同样的问题,我的.git
中有一些奇怪的文件:
$ ls .git
1N4s5Mx6eD
3gRNi8l7yb
config
...
删除后(1N4s5Mx6eD
,3gRNi8l7yb
,...)我可以继续git svn fetch
。
我认为该网络问题是我的原因,因为git svn
在一个大文件后失败,因为网络传输错误的可能性更大。