2009-03-20 7 views
52

Souvent, quand je change de branche dans git, si les fichiers sont ouverts dans emacs, emacs me demande si je veux les annuler (car il pense qu'ils ont changé sur le disque) même si le contenu est identique. Premièrement, je voudrais trouver un moyen pour emacs de ne pas me poser la question du tout si le contenu sur le disque est identique à celui du tampon.Comment puis-je demander à Emacs de restaurer tous les tampons inchangés lors du changement de branche dans git?

Deuxièmement, je voudrais une commande qui a inversé (sans interrogation) tous mes tampons ouverts qui n'ont pas de modifications non enregistrées, et m'a interrogé sur ceux qui ont des modifications non enregistrées. Sinon, je serais ouvert aux suggestions sur d'autres solutions, façons de travailler, etc. Je pourrais essayer. Je suis assez content d'écrire emacs-lisp si les gens peuvent me donner des indications sur par où commencer. PS J'utilise Aquamacs sur OSX si cela est important.

Edit:

Eh bien, je l'ai trouvé le paquet revbuffs être à peu près ce que je dois. Certainement assez pour m'empêcher de vouloir écrire quelque chose de nouveau moi-même. (J'ai mappé des révolutions à Cmd-R qui fonctionne assez bien, un peu comme Cmd-R dans d'autres applications Mac).

Global-auto-inversion mode aurait été une solution parfaitement bien, et je voudrais pouvoir choisir deux réponses. Je préfère les révoltes à cause d'un sentiment, peut-être irrationnel, de vouloir contrôler ce qui se passe. Je pensais que si j'accédais à git à partir d'emacs, il serait probablement plus facile à gérer, mais je préfère actuellement accéder à git via la ligne de commande. (Je n'ai pas assez utilisé Emacs assez longtemps pour en faire mon système d'exploitation). J'explorerai un peu plus minutieusement le magit.

Edit2:

Je me sers magit depuis un an et recommande vivement pour traiter git à l'intérieur emacs. Cependant, j'utilise toujours des révolutions quand je fais un rebasage en dehors d'emacs.

+1

Je sais que cela est ancienne, mais j'aime le raisonnement de Singletoned, et une petite fourchette de revbufs sur github https://github.com/capitaomorte/revbufs –

Répondre

17

Essayez le revbufs package:

revbufs.el est un petit paquet emacs qui retourne en toute sécurité vos tampons lorsque vous avez des fichiers en cours d'édition à la fois dans Emacs et par des outils externes (par exemple, des générateurs de code tels que Jomtool) ...

+0

Toute façon de faire ce automatique? Comme Singletoned mentionne dans son édition, vous devez lier cela à une clé. – toolbear

11

Magit package le faire automatiquement, lorsque vous activez magit-ionotify-mode (inotify besoin emacs 24,4 sur Linux). Sa description vous pouvez trouver here.

40

Peut-être que vous aimeriez le mode d'auto-retour global. Essayez d'exécuter global-auto-revert-mode et, si vous le souhaitez, vous pouvez ajouter (global-auto-revert-mode) à votre fichier ~/.emacs.

Questions connexes