拉上Cygwin git fork()错误

Gus*_*Gus 22 git cygwin

基本问题是有时我这样做

git pull upstream master
Run Code Online (Sandbox Code Playgroud)

我明白了

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
Run Code Online (Sandbox Code Playgroud)

退出代码每次都是相同的,对象的数量随着进程数的变化而变化.我在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邮件.

Mar*_*son 35

这可以在这里解决:http://cygwin.wikia.com/wiki/Rebaseall

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

C:\cygwin\bin\dash.exe -c '/usr/bin/rebaseall -v'
Run Code Online (Sandbox Code Playgroud)

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


小智 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

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

  • 以下对rebaseall的回答是一个更好的答案,并完全解释了问题(包括为什么这个hack解决了直接的问题). (2认同)