拉上Cygwin git fork()错误

时间:2012-08-20 17:41:33

标签: git cygwin

基本问题是有时我做

git pull upstream master

我得到了

remote: Counting objects: 172, done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 119 (delta 45), reused 95 (delta 21)
      0 [main] git 8660 fork: child -1 - forked process 4520 died unexpectedly, retry 0, exit code -1073741515, errno 11
error: cannot fork() for index-pack: Resource temporarily unavailable
fatal: fetch-pack: unable to fork off index-pack

每次退出代码都是相同的,对象的数量随着进程数的变化而变化。我在Windows 7上通过ssh运行对github的公钥认证。它发生在有和没有ssh-agent的情况下。我已经有几个月的这个问题了,并且当它出现时,切换到运行Git Bash(MingW32)来解决这个问题(这几乎每次都有一些存储库,偶尔或从不与其他人一起)。但是我通常更喜欢Cygwin环境并且我的大部分东西都设置在那里,所以当我被迫这样做时,这是一个拖累。

前段时间我看到了这篇文章http://cygwin.com/ml/cygwin/2012-03/msg00025.html并且在阅读之后希望下次我更新Cygwin时修复这个问题也会解决我的问题。它没有,但我不确定修复程序是否已发布,但我今天再次更新并且它正在发生。

我注意到很多关于网络上Cygwin git的fork()错误的电子邮件,虽然没有拉动,所以我的问题是,有没有人在拉过之前看过这个,是什么原因引起的?有没有办法阻止它发生(除了修补git或cygwin或使用其他一些实现课程:))。

有趣的是,我没有看到任何错误,我可以在网上找到相关的Cygwin / git邮件。

5 个答案:

答案 0 :(得分:35)

此处解决了这个问题:http://cygwin.wikia.com/wiki/Rebaseall

简而言之,关闭所有窗口并运行它:

C:\cygwin\bin\dash.exe -c '/usr/bin/rebaseall -v'

这解决了与分叉相关的所有问题。我遇到了从emacs和git分支aspell的问题。

答案 1 :(得分:25)

好的,我想我应该分享。我有同样的问题,但我有一个解决方法。问题似乎是PATH的长度。如果我做了一个git pull,我得到了fork失败:

$ git pull*emphasized text*
      2 [main] git 7384 fork: child -1 - forked process 7420 died unexpectedly, retry 0, exit code -1073741515, errno 11
error: cannot fork() for rev-list: Resource temporarily unavailable
error: Could not run 'git rev-list'
remote: Counting objects: 728, done.
remote: Compressing objects: 100% (456/456), done.
 907550 [main] git 7384 fork: child -1 - forked process 7436 died unexpectedly, retry 0, exit code -1073741515, errno 11
error: cannot fork() for index-pack: Resource temporarily unavailable
fatal: fetch-pack: unable to fork off index-pack

但是,如果我在运行git之前将PATH设置为非常小的东西,它可以工作:

$ PATH=/usr/bin git pull
remote: Counting objects: 728, done.
remote: Compressing objects: 100% (456/456), done.
remote: Total 464 (delta 337), reused 9 (delta 6)
Receiving objects: 100% (464/464), 153.36 KiB, done.
Resolving deltas: 100% (337/337), completed with 107 local objects.
From git://cmake.org/cmake

如果它对你们任何人都有用,我会感兴趣吗?

答案 2 :(得分:3)

我也面临同样的问题,系统重新启动解决了它。

答案 3 :(得分:2)

我知道有一段时间过去了,但我发现这是在寻找我自己非常相似的问题,使用MobaXterm应用程序内置的cygwin平台。拉出我不存在的头发试图找出它,最后通过简单的重启来修复它。

我再次证实,这适用于第二台Windows 10计算机,MobaXterm + git应用程序的新安装,以及尝试从github repo中提取。相同的错误:“错误:不能fork()索引包:资源暂时不可用”已经实现,并且一个简单的计算机重新启动修复它。

答案 4 :(得分:-3)

不是设置PATH变量或使用git的完整路径(一次),而是应该也可以这样做:

git=`which git`
git pull

这会将git分配给它连续调用的完整路径。现在,如果git在另一个程序(如make)中使用,它将能够。