git blame с деталями фиксации в emacs


Из emacs, как я могу увидеть детали (например, сообщение о фиксации) фиксации, которая в последний раз изменила линию в точке?

У меня установлен magit.

2 48

2 ответа:

Нет необходимости использовать magit для этой конкретной операции-vanilla emacs может это сделать.

(Кроме того, поскольку это использует vc, это должно работать идентично в любой системе управления версиями, которую поддерживает vc.)

Сначала используйте команду vc-annotate, которая привязана к последовательности ключей C-x v g .

Теперь точка должна быть на ID фиксации, который вас интересует. (Если нет, вам может понадобиться использовать C-x 1 и / или v так, чтобы вы можно увидеть, какая линия является какой, чтобы перейти к правой.) Вы можете увидеть разницу для этого файла, используя = теперь-если вы получаете ошибку, начинающуюся с "не может отличаться от любой предыдущей редакции...", что, вероятно, означает, что эта ревизия создала файл (и это, вероятно, ошибка в emacs).

Автор и дата уже видны в буфереаннотации , который vc-annotate произвел.

Чтобы увидеть сообщение фиксации, нажмите l (буква, а не номер 1) в буфереаннотировать . Чтобы посмотреть, как выглядел файл в этой редакции, нажмите f либо в буфере Annotate, либо в буфере vc-change-log.

Я бы предложил использовать magit-blame-mode (M-x magit-blame-mode ). Он предоставляет информацию гораздо более приятным способом по сравнению с vc-annotate и является частью стандартного распределения magit. Вы, вероятно, захотите привязать его к какой-нибудь комбинации клавиш, чтобы переключать его быстро.

В magit-blame-mode используйте p и n для перехода между предыдущим и следующим изменением и RET, чтобы увидеть разницу для конкретного коммита.