Magit запускает коммит git навсегда

Я использую Emacs на Mac OS с пакетом Magit. Все работает нормально, за исключением случаев, когда я пытаюсь выполнить коммит (ярлык: c c). Magit зависает с этим сообщением в нижней панели: «работает git commit». Что странно, так это то, что когда я останавливаю команду (Ctrl-g), magit показывает мне буфер для записи моего сообщения о коммите, и все работает нормально. Я не знаю, почему это происходит.

with-editor-emacsclient-executable

установлен на /usr/local/Cellar/emacs/HEAD/bin/emacsclient.

и вызов /usr/local/Cellar/emacs/HEAD/bin/emacsclient имени файла непосредственно из консоли, похоже, работает.

Спасибо за помощь!


person maroxe    schedule 24.02.2016    source источник
comment
Если вы $ (то есть magit-process-buffer), вы увидите, что git делает в фоновом режиме.   -  person Squidly    schedule 25.02.2016


Ответы (1)


Кажется, это обычная проблема при работе с большим репо или репо, которое существует уже давно. Попробуйте почистить репозиторий. Вы можете использовать их:

git remote prune origin
git gc

Из официальных документов:

git remote prune origin

Удаляет все устаревшие ветки удаленного отслеживания под name. Эти устаревшие ветки уже удалены из удаленного репозитория, на который ссылается name, но все еще доступны локально в «remotes/name».

git gc

Выполняет ряд вспомогательных задач в текущем репозитории, таких как сжатие версий файлов (для уменьшения дискового пространства и повышения производительности) и удаление недоступных объектов, которые могли быть созданы в результате предыдущих вызовов git add.

Пользователям рекомендуется регулярно запускать эту задачу в каждом репозитории, чтобы поддерживать хорошее использование дискового пространства и хорошую производительность.

Также может быть проблема с большими дифференциалами:

https://github.com/magit/magit/issues/2048

person TheGeorgeous    schedule 24.02.2016
comment
не могли бы вы уточнить, что именно делает эта команда? Это не сработало для меня. - person maroxe; 24.02.2016
comment
@maroxe, добавил детали - person TheGeorgeous; 24.02.2016
comment
@maroxe, у меня также сработала очистка моих пультов, чтобы уменьшить количество веток. Как я уже сказал, это обычное дело для больших репозиториев, таких как Linux. См. github.com/magit/magit/issues/2097. - person TheGeorgeous; 24.02.2016
comment
Я думаю, что здесь проблема связана с тем, что магит пытается добраться до редактора и зацикливается, чтобы что-то произошло. Если я прерву этот процесс, у меня будет доступ к буферу фиксации, и я смогу выполнить фиксацию, как обычно. Фиксация из командной строки работает нормально. - person maroxe; 24.02.2016
comment
@maroxe, на самом деле, если вы нажмете c вместо C-g, он будет работать точно так же - person TheGeorgeous; 24.02.2016
comment
Что ты имеешь в виду? просто нажмите c, мне ничего не будет - person maroxe; 25.02.2016
comment
Я имел в виду, что не думаю, что это потому, что процесс зависает, если он завис, я обычно снова нажимаю c и получаю окно сообщения фиксации - person TheGeorgeous; 25.02.2016