由於前幾天,我每次在資源庫中啓動Git的圖形用戶界面,它會顯示這個可怕的錯誤消息,並退出我點擊確定後:的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 Update可能觸發了這個 - 這也解釋了爲什麼其他機器不會受到影響 - 這是自上次Win更新以來的2-3個月。
任何想法如何闡明這一點? (我只能看到它單獨的機器上,我不喜歡它提交給官方的跟蹤器之前,我知道這是不是我的/其他應用程序的故障......)
更新第一批意見後:
-
如果您刪除或重命名的鉤子腳本,它的工作原理?
夠搞怪,但鉤子腳本實際上根本不存在的所有(無鉤腳本 禮物 - 只有*。樣品文件git的\掛鉤)。甚至沒有在其他地方(GIT程序 目錄等)
-
跟蹤,所以你知道它跑什麼命令 - 從混帳bash的運行
git gui --trace
可悲的是,這並不輸出任何東西到shell 。行爲是一樣的。
-
也許會在那裏得到gdb。
我試過了,但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)
但我幾乎可以肯定,我做錯了,所以建議是多人歡迎:)
-
確保你沒有cygwin的安裝或至少它不存在於你的 PATH所有
我有cygwin的安裝(因爲我一直有,以前的git爆發)。從Cygwin我只有 路徑中有一些* .bat發射器和一些* .dll文件,但我已與 檢查ProcMon,它不會觸及它們,即使我將它們從路徑中刪除,我仍然得到 同樣的崩潰。
如果您刪除或重命名鉤子腳本的人,它的工作原理? '.git/hooks/prepare-commit-msg' – fork0 2012-07-10 18:41:07
跟蹤它,讓你知道它運行的命令 - 從git-bash運行'git gui --trace'。當它運行prepare-commit-hook時,它會發出它運行的命令,你可以查看該命令以獲得進一步的調試信息。也許會在那裏得到gdb。它抱怨cygwin的堆是可疑的。確保你沒有安裝cygwin,或者至少它沒有安裝在你的PATH中。 cygwin和msys不會混用。 – patthoyts 2012-07-10 21:37:04
@patthoyts,fork0感謝指針,更新了Q並附有回覆 – 2012-07-11 09:41:50