web-dev-qa-db-fra.com

git blâme avec les détails de commit dans emacs

Depuis emacs, comment puis-je voir les détails (par exemple, le message de validation) du commit qui a modifié la ligne en dernier lieu?

J'ai installé magit.

57
Robin Green

Il n'est pas nécessaire d'utiliser magit pour cette opération particulière - Emacs vanille peut le faire.

(En outre, comme cela utilise vc, cela devrait fonctionner de manière identique dans tout système de contrôle de version pris en charge par vc.)

Tout d'abord, utilisez le vc-annotate commande, qui est liée à la séquence de touches C-xvg.

Maintenant, le point devrait être l'ID de validation qui vous intéresse. (Sinon, vous devrez peut-être utiliser C-x1 et/ou v afin que vous puissiez voir quelle ligne est laquelle, afin de naviguer vers la bonne.) Vous pourriez être en mesure de voir le diff pour ce fichier en utilisant = maintenant - si vous obtenez une erreur commençant par "ne peut pas différer d'une révision antérieure ...", cela signifie probablement que cette révision a créé le fichier (et c'est probablement un bogue dans emacs).

L'auteur et la date sont déjà visibles dans le tampon Annotate que vc-annotate produit.

Pour voir le message de validation, appuyez sur l (la lettre, pas le chiffre 1) dans le tampon Annoter. Pour voir à quoi ressemblait le fichier lors de cette révision, appuyez sur f dans le tampon Annotate ou vc-change-log.

81
Robin Green

Je suggère l'utilisation de magit-blame-mode (M-x magit-blame-mode). Il fournit les informations de manière beaucoup plus agréable que vc-annotate et fait partie de la distribution standard de magit. Vous voudrez probablement le lier à une combinaison de clavier pour le basculer rapidement.

Dans magit-blame-mode utilisation p et n pour naviguer entre le changement précédent et le suivant et RET pour voir le diff pour un commit particulier.

42
Bozhidar Batsov