Начиная с нескольких дней назад, каждый раз, когда я запускаю графический интерфейс Git в репозитории, он отображает это сообщение об ошибке и завершает работу после того, как я нажму 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 heap, Win32 error 0
You must correct the above errors before committing.
Это происходит только с графическим интерфейсом Git и только в репозитории (старый или вновь созданный). Общие команды в Git Bash, включая фиксацию работы.
Не устанавливать и переустанавливать с новым пакетом (только незначительное изменение версии) не удалось устранить проблему. Это все еще происходит со старыми репозиториями, а также с недавно созданными.
На чистой машине эта проблема не воспроизводится, поэтому я предполагаю, что это что-то на моей коробке, но я не помню, чтобы что-то происходило смешно. Я действительно забыл выключить свою коробку после долгого времени, поэтому, возможно, некоторые из Windows Update могли вызвать это, что также объясняет, почему другая машина не страдает - это через 2-3 месяца с момента последнего обновления Windows.
Любые идеи, как пролить свет на это? (Поскольку я могу видеть это только на одной машине, я не хочу отправлять ее официальному трекеру, прежде чем я узнаю, что это не ошибка моего/другого приложения...)
Обновить после первых комментариев:
-
Если вы удалите или переименуете hook script, это сработает?
Забавно, но крючок script на самом деле вообще не существует (нет скриптов hook present - есть только файлы *.sample в .git\hooks). Даже в другом месте (git программа dir и т.д.)
-
Отследите его, чтобы вы знали, какие команды он запускал - от git - bash run
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, что он их не трогает, и даже если я удалю их с пути, который я все еще получаю тот же крах.