每次打开存储库时,Git GUI 都会崩溃

标签 git dll msysgit

从几天前开始,每次我在存储库中启动 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 个月了。

有什么想法可以阐明这一点吗? (因为我只能在一台机器上看到它,所以在我知道这不是我/其他应用程序的错之前,我不想将它提交给官方跟踪器......)


在第一次评论后更新:

  • If you remove or rename the hook script, does it work?

    很有趣,但是钩子(Hook)脚本实际上根本不存在(没有钩子(Hook)脚本是 present——.git\hooks 中只有 *.sample 文件)。甚至在其他地方都没有(git 程序 目录等)

  • Trace it so you know what commands it ran - from git-bash run git gui --trace

    遗憾的是,这不会向 shell 输出任何内容。行为相同。

  • Maybe get gdb in there.

    我试过了,但是 gdb 没有输出任何有用的东西。但是,我没有任何经验 使用 GDB,我可能做错了。我有一个 MinGW's gdb , 从命令运行它 以 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)  
    

    但我几乎可以肯定我做错了,所以非常欢迎提出建议:)

  • Make sure you don't have cygwin installed or at least that it is not present in your PATH at all

    我确实安装了 cygwin(在 git 崩溃之前,我一直都是这样)。仅来自 Cygwin 我 在路径中有一些 *.bat 启动器和一些 *.dll 文件,但我已经检查过 ProcMon 它不会触及它们,即使我将它们从路径中移除,我仍然会得到 同样的崩溃。

最佳答案

这对我有用。

http://www.trinitycore.org/f/topic/5194-msysgit-couldnt-reserve-space-for-cygwins-heap/

Solution:

Change the base address of the msysgit.dll

c:\msysgit\bin>rebase.exe -b 0x50000000 msys-1.0.dll

关于每次打开存储库时,Git GUI 都会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11419700/

相关文章:

git - 如何交互式(可视化)解决 SourceTree/git 中的冲突

c# - 读取嵌入式程序集 (.dll) 时出现问题

visual-studio - OpenCV Visual Studio 2010 - RC6034 错误(DLL hell ?)

java - JNI DLL 如何搜索其依赖的 native DLL?

git - "git svn clone"只克隆树干? (预计克隆整个存储库)

git - 拒绝用户访问 gitolite-admin

git - 如果不是最新的,则防止 git push 发送整个 repo

javascript - 用于检查正确的 Javascript 语法的工具或实用程序

git checkout : what does this weird output mean?

git - 可以试运行 `git revert` 吗?