Подтвердить что ты не робот

Как я могу заставить Emacs вернуть все неизменные буферы при переключении ветвей в git?

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

Во-первых, я хотел бы найти способ, чтобы emacs не спрашивал меня об этом вообще, если содержимое на диске идентично содержимому в буфере.

Во-вторых, мне нужна команда, которая вернула (без запроса) все мои открытые буферы, у которых не было несохраненных изменений, и запросил меня о тех, у которых есть несохраненные изменения.

В качестве альтернативы, я был бы открыт для предложений о других решениях, способах работы и т.д. Я мог бы попробовать. Я довольно счастлив писать emacs- lisp, если люди могут дать мне указания о том, с чего начать.

PS Я использую Aquamacs на OSX, если это имеет значение.

Edit:

Что ж, я нашел пакет revbuffs в значительной степени тем, что мне нужно. Конечно, достаточно, чтобы остановить меня, желая попробовать написать что-нибудь новое. (Я сопоставил revbuffs с Cmd-R, который работает довольно хорошо. Вид похож на Cmd-R в других приложениях Mac).

Режим Global-auto-revert был бы идеальным решением, и я хотел бы выбрать два ответа. Я предпочитаю обрезки просто из-за, возможно, иррационального чувства желания контролировать то, что происходит.

Я бы догадался, что если бы я получил доступ к git из emacs, то, скорее всего, его можно было бы обработать проще, но в настоящее время я предпочитаю доступ к git через командную строку. (Я не достаточно давно использовал emacs, чтобы сделать его своей операционной системой). Я исследую магит немного более тщательно, хотя.

Edit2:

Я использую magit уже год и могу очень рекомендовать его для работы с git из emacs. Однако я все еще использую revbuffs, когда я делаю rebase вне emacs.

4b9b3361

Ответ 1

Попробуйте пакет revbufs:

revbufs.el - это небольшой пакет Emacs, который безопасно восстанавливает ваши буферы, когда вы редактируете файлы как в Emacs, так и через внешние инструменты (например, генераторы кода, такие как Jomtool)...

Ответ 2

Возможно, вам нужен глобальный режим автоматического восстановления. Попробуйте запустить global-auto-revert-mode, и если вам это нравится, вы можете добавить (global-auto-revert-mode) в ваш файл ~/.emacs.

Ответ 3

Пакет Magit делает это автоматически, когда вы активируете magit-ionotify-mode (inotify нужно emacs 24.4 на linux). Его описание можно найти здесь.