Git扩展:直到昨天,一切都工作得很好。

但突然我得到这个错误时,我试图拉一些仓库使用git扩展

C:\Program Files\Git\bin\git.exe pull --progress "origin" 
Done
    0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x68560000, RegionSize 0x390000, State 0x10000
C:\Program Files\Git\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0

我克隆的所有存储库都发生了这种情况。 但是,我的git bash运行良好。 我完全不知道发生了什么。知道为什么会这样吗?


当前回答

克服恼人的堆错误的一个妙招是为命令行启用“遗留控制台”模式。它提供了对其他api的访问,这些api在后来的windows版本中受到了限制,因此内存分配工作得更好。

其他回答

我在LPCEXpresso构建中遇到过这个问题。如果在PATH中有C:\MinGW\bin。不知何故,我不得不删除它来摆脱这个问题,因为其他一些MinGW喜欢基于

I ran into this today. Led by Greg Hewgill's answer, I looked at running processes on my system to see if anything was "stuck" or if other users were logged into the machine doing anything with git. I then launched cygwin (installed separately) on this particular machine. It launched ok. I closed it and then tried the Git Extensions again (I was trying a pull operation) and it worked. Not sure if the launching of cygwin cleared something that was shared but this is the first time I ran into this error and this seemed to fix it for me.

这个错误在我的Windows机器上很少发生。我最终重启了机器,错误消失了。

Cygwin使用持久共享内存部分,有时可能会损坏。这种情况的症状是一些Cygwin程序开始失败,但其他应用程序不受影响。由于这些共享内存段是持久的,在解决问题之前,通常需要重新启动系统来清除它们。

为了解决这个问题,我简单地让Tortoise Git安装了更新。