首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Git GUI每次打开存储库时都会崩溃

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

Stack Overflow用户
提问于 2012-07-10 18:36:21
回答 6查看 10.4K关注 0票数 16

因为几天前,每当我在存储库中启动Git GUI时,它都会显示这条可怕的错误消息,并在单击OK之后退出:

代码语言:javascript
运行
复制
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.

它只在GUI中发生,并且只在存储库(旧的或新创建的)中发生。Git Bash中的常见命令,包括提交工作良好。

取消安装和重新安装较新的软件包(仅轻微的版本更改)没有消除问题。这种情况仍然发生在旧存储库和新创建的存储库中。

在一台干净的机器上,这个问题不会重现,所以我想这是我的盒子上的东西,但我不记得安装了什么有趣的东西。我确实记得很长一段时间后关闭了我的机器,所以可能是一些Windows Update触发了这一点--这也解释了为什么另一台机器没有受到影响--自上次Win更新以来已经有2-3个月了。

有什么办法让我们明白这一点吗?(因为我只能在单机上看到它,在我知道这不是我/其他应用程序的错之前,我不想把它提交给官方跟踪器。)

在第一个注释之后更新

  • 如果您删除或重命名钩子脚本,它工作吗?

很有趣,但钩子脚本实际上根本不存在(没有钩子脚本存在-.git\hooks中只有.git\hooks文件)。甚至在其他地方也没有(git程序dir等)

  • 跟踪它,这样您就知道它从git-bash运行git gui --trace运行了哪些命令。

遗憾的是,这并没有将任何内容输出到shell。行为是一样的。

  • 也许让gdb进去。

我试过了,但是gdb没有输出任何有用的东西。但是,我没有使用GDB的经验,我可能做错了。我得到了一个MinGW's gdb,在命令提示符下以git.exe作为参数运行它,然后运行run gui。gdb没有输出任何有趣的内容:

(gdb)运行gui启动程序: C:\Program (x86)\Git\bin\git.exe gu新线程8264.0x1ce4 与代码01一起退出的低级1(进程8264)

但我几乎肯定我做错了,所以建议是非常受欢迎的:)

  • 确保您没有安装cygwin,或者至少它根本不存在于您的路径中。

我确实安装了cygwin (和以前一样,在git崩溃之前)。在Cygwin中,我只有path中的一些*.bat启动程序和一些*.dll文件,但是我已经与ProcMon检查过,它没有接触到它们,即使我将它们从路径中删除,我仍然会遇到相同的崩溃。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-07-12 08:41:10

在另一个Windows和OS重新启动之后,问题消失了。

似乎其中的一个更新引入了一个bug,这个错误在另一个中修复了。也可能是“月相”虫。

我想我们永远不会知道..。

票数 3
EN

Stack Overflow用户

发布于 2014-04-07 10:45:55

这对我有用。

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

票数 10
EN

Stack Overflow用户

发布于 2013-05-20 17:13:59

我也遇到过这个问题

我已经用

http://support.code-red-tech.com/CodeRedWiki/VirtualAllocPointerNull

显然,这是由某些特性引起的,并且替换dll对大多数人来说是修复它的原因。

如果网站被关闭-

虚拟专用指针为空

很少情况下,运行make可能会导致类似的错误:

代码语言:javascript
运行
复制
0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x71110000, RegionSize 0x350000, State 0x10000
\msys\bin\make.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0

这是一个影响一小部分客户的问题,并取决于他们同时运行的其他应用程序。

这是由我们用来为产品提供构建环境的MSYS二进制文件中的一个特性造成的。

如果发生这种情况,可以将文件\msys\bin\msys-1.0.dll替换为附带的zipfile中的文件。msys-1.0.zip

请注意,这并没有解决问题,而是移动DLL基地址。不幸的是,这个替换DLL也可能发生错误,这同样取决于其他应用程序正在运行的是什么。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11419700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档