数日前から、リポジトリでGit GUIを起動するたびに、この恐ろしいエラーメッセージが表示され、[OK]をクリックすると終了します。
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でのみ発生し、リポジトリ(古いまたは新しく作成されたもの)にある場合にのみ発生します。commitを含むGitBashの一般的なコマンドは正常に機能します。
新しいパッケージ(マイナーバージョンの変更のみ)をアンインストールして再インストールしても、問題は解決しませんでした。これは、古いリポジトリでも、新しく作成されたリポジトリでも発生します。
きれいなマシンではこの問題は再現されないので、私の箱にあるものだと思いますが、面白いものをインストールしたことを覚えていません。久しぶりにボックスの電源を切ったことを覚えているので、Windows Updateがこれをトリガーした可能性があります。これは、他のマシンが影響を受けない理由も説明します。前回のWin Updateから2〜3か月です。
これに光を当てる方法はありますか?(1台のマシンでしか見ることができないので、自分や他のアプリのせいではないことがわかる前に、公式トラッカーに送信する気はありません...)
最初のコメントの後に更新:
フックスクリプトを削除または名前変更した場合、それは機能しますか?
おかしなことに、フックスクリプトは実際にはまったく存在しません(フックスクリプトは存在しません。.git\hooksには*.sampleファイルしかありません)。他の場所でもありません(git program dirなど)
トレースして、実行したコマンドを確認します-git-bashrunから
git gui --trace
残念ながら、これはシェルに何も出力しません。動作は同じです。
たぶんそこにgdbを入れてください。
試しましたが、gdbは有用なものを何も出力しませんでした。ただし、GDBの使用経験はありません。おそらく、間違っていると思います。MinGWの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でそれらに触れないことを確認しました。パスからそれらを削除しても、同じクラッシュが発生します。