git svn fetch fatal:写入错误:参数无效

时间:2009-12-14 08:17:52

标签: git git-svn

当我尝试克隆远程svn存储库时,会出现奇怪的情况。

我输入时:
git svn fetch

Git将获取远程存储库的前20个版本,然后在20次修订后的某个时刻失败并只提示以下错误消息。

致命:写错误:参数无效

然后就坐在那里别无其他。重复相同的git init然后再次重新获取,会导致报告致命错误的位置完全相同。

任何想法可能导致这种情况发生?我目前正在运行以下版本:

TortoiseGit 1.2.1.0
git版本1.6.4.msysgit.0

6 个答案:

答案 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)

当我试图获取大型远程仓库时,我遇到了类似的问题。 我从头开始尝试了好几次,并且所有时间都在大约相同的修订版中得到了这个错误~400(或者可能完全相同 - 我没注意太多)。 谷歌搜索没有回答。 比我拿萨满鼓,并试图杀死TSVNCache.exe和TGitCache.exe进程。 之后,我没有看到错误消息。由于互联网中断,我多次重新取消抓取过程 - 一切正常(总修订~3000),看起来问题已经消失。

我的猜测是其中一个进程锁定了一些git也使用的文件。

注意:如果你杀死了那些进程而不是启动资源管理器,它们将再次启动。

答案 2 :(得分:1)

如果你排除了明显的原因(没有磁盘空间!),它可能会链接到远程SVN存储库的布局问题(分支不在分支子目录中,标签不在标签中,......) 。 有关此类SVN仓库的示例,请参阅Using git-svn with non-standard repository layouts

其他需要解决问题的案例:SVN repo which has changed its layout since the last import

另见mmap issues in Windows

答案 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
...

删除后(1N4s5Mx6eD3gRNi8l7yb,...)我可以继续git svn fetch

我认为该网络问题是我的原因,因为git svn在一个大文件后失败,因为网络传输错误的可能性更大。