从几天前开始,每次我在存储库中启动 Git GUI 时,它都会显示此可怕的错误消息,并在我单击“确定”后退出:
prepare-commit-msg hook failed:
0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x68560000, RegionSize 0x260000, State 0x10000
C:\Program Files (x86)\Git\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0
You must correct the above errors before committing.
它仅在使用 Git GUI 时发生,并且仅在存储库(旧的或新创建的存储库)中时发生。 Git Bash 中的常用命令(包括提交)工作正常。
卸载并使用较新的软件包重新安装(仅进行较小的版本更改)并不能解决该问题。无论是旧存储库还是新创建的存储库,这种情况仍然会发生。
在干净的机器上,这个问题不会重现,所以我猜这是我盒子上的东西,但我不记得安装过任何有趣的东西。我确实记得在很长一段时间后关闭了我的盒子,所以也许某些 Windows 更新可能会触发此问题 - 这也可以解释为什么另一台机器没有受到影响 - 自上次 Win 更新以来已经有 2-3 个月了。
有什么想法可以阐明这一点吗? (因为我只能在单台机器上看到它,所以在我知道这不是我/其他应用程序的错之前,我不想将其提交给官方跟踪器......)
Update第一次评论后:
-
如果删除或重命名钩子脚本,它会起作用吗?
很有趣,但钩子脚本实际上根本不存在(没有钩子脚本)
目前 - .git\hooks 中只有 *.sample 文件)。甚至其他地方也没有(git程序
目录等)
-
跟踪它,以便您知道它运行了哪些命令 - 来自 git-bash rungit gui --trace
遗憾的是,这不会向 shell 输出任何内容。行为是一样的。
-
也许把 gdb 放在那里。
我尝试过,但 gdb 没有输出任何有用的东西。然而我没有任何经验
对于GDB,我可能做错了。我有一个MinGW的gdb http://sourceforge.net/projects/mingw/files/,从命令运行它
以 git.exe 作为参数提示,然后运行run gui
。 gdb没有输出任何内容
有趣的:
(gdb) run gui
Starting program: C:\Program Files (x86)\Git\bin\git.exe gu
[New Thread 8264.0x1ce4]
[New Thread 8264.0x394]
[Inferior 1 (process 8264) exited with code 01]
(gdb)
但我几乎可以肯定我做错了,所以非常欢迎建议:)
-
确保您没有安装 cygwin 或者至少它不存在于您的
完全路径
我确实安装了 cygwin (在 git 崩溃之前我一直如此)。仅来自 Cygwin 我
路径中有一些 *.bat 启动器和一些 *.dll 文件,但我已经检查过
ProcMon 它不会触及它们,即使我将它们从我仍然得到的路径中删除
同样的崩溃。
这对我有用。
http://www.trinitycore.org/f/topic/5194-msysgit-couldnt-reserve-space-for-cygwins-heap/ http://www.trinitycore.org/f/topic/5194-msysgit-couldnt-reserve-space-for-cygwins-heap/
解决方案:
更改msysgit.dll的基地址
c:\msysgit\bin>rebase.exe -b 0x50000000 msys-1.0.dll
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)