Comment puis-je activer le drapeau `--verbose` par défaut dans l'écran de validation de magit?

16

En ce moment, au lieu d'appuyer uniquement ccen mode magit, je dois appuyer à c-vcchaque fois pour l'activer --verbose.

Est-il possible de le rendre activé par défaut?

Dogbert
la source

Réponses:

17

A partir de là v2.1.0, Magit utilise la bibliothèque magit-popup.elpour implémenter de tels "buffers popup" ou "combos prefix-infix-suffix". Malgré son nom, cette bibliothèque peut être utilisée par des packages non liés à Magit, et est donc disponible en tant que package Elpa séparé. Il a même son propre manuel maintenant!

Les arguments par défaut peuvent désormais être définis directement à partir d'un tampon contextuel. Pour toujours utiliser --verboselors de la validation, procédez comme suit:

  1. c Afficher le popup de validation
  2. - v Allumer --verbose
  3. C-x C-sEnregistrez les arguments actuellement définis comme valeurs par défaut (dans l'option personnalisée magit-commit-arguments)

Par défaut, tous les tampons contextuels se terminent par une section nommée "Commandes communes". Sinon, utilisez C-tpour le montrer. Vous ne voulez probablement pas voir cette section tout le temps et devez donc la définir magit-popup-show-common-commandssur nil.

Bien sûr, il est également possible de définir la valeur de magit-commit-argumentset d'autres variables de ce type à l'aide de l'interface personnalisée,, setqou add-to-list. Mais je déconseille cela, car cela rendrait impossible de modifier les paramètres par défaut à la volée.

tarse
la source
7

Pour autant que je peux dire Magit ne garde pas trace d'options « par défaut », mais nous pouvons faire ce « presse -v» à chaque fois que la mémoire tampon Commettre apparaît:

(advice-add #'magit-key-mode-popup-committing :after
            (lambda ()
              (magit-key-mode-toggle-option (quote committing) "--verbose")))

Pour trouver la fonction à conseiller, j'ai ouvert un magic-statustampon et appuyé sur C-h k c. Cela m'a conduit à magit-key-mode-popup-committing. Puis (avec le tampon de validation toujours affiché), j'ai appuyé sur C-h k -vpour trouver le lambdaformulaire que Magit appelle lorsque vous appuyez sur -vdans la fenêtre de validation.

Mise à jour: j'ai écrit cette réponse indépendamment, mais voir Puis-je avoir l'option git-log «--all» initialement sélectionnée? , la réponse qui y est donnée et les commentaires de cette réponse.

Constantine
la source
1
C'est intéressant! Merci d'avoir également expliqué comment vous avez trouvé ces fonctions :)
Dogbert
@Dogbert: veuillez voir le lien dans la réponse mise à jour si vous voulez savoir que d'autres ont pensé aux options git par défaut il n'y a pas si longtemps. :-) (Je ne sais pas comment j'ai raté ça hier.)
Constantine
4

Dans les versions de magit qui utilisent des transitoires (après février 2019 environ), définissez l'indicateur, puis enregistrez tout en restant dans le tampon transitoire.

Donc, pour commit, la séquence de touches serait quelque chose comme

C-x g # start magit
s # to stage changes
c # start commiting
-v # enable verbose
C-x C-s # Save the setting persistently across sessions
c # do the actual commit

Après cela, la prochaine fois que commit sera invoqué, verbose sera toujours défini. (Vous n'avez pas à terminer la validation et pouvez quitter après avoir enregistré avec C-x C-s.)

La valeur par défaut réelle est enregistrée dans un transient/répertoire de .emacs.d/.

Voir le manuel transitoire https://magit.vc/manual/transient.html#Saving-Values

mhb
la source
0

Bien que ce ne soit pas exactement ce que vous voulez (diff dans votre tampon de validation), vous pouvez configurer magit pour étendre les différences intermédiaires dans la fenêtre d' état :

(setq magit-expand-staged-on-commit 'full)

Le flux de travail magit semble toujours être un tampon d'état ouvert, puis un fractionnement ouvert avec un tampon de validation, vous vous retrouvez toujours avec deux tampons affichés. Le paramètre ci-dessus fera que le deuxième tampon (auparavant inutile) affichera votre diff.

Vous pouvez également utiliser tpour développer uniquement les en-têtes de différence (de sorte qu'il affiche les numéros de ligne):

(setq magit-expand-staged-on-commit t)

Pendant l'écriture de votre diff, vous pouvez basculer vers le tampon d'état et l'utiliser TABpour développer (ou plier) les diff.


Vous pouvez également utiliser à C-c C-dpartir du tampon de validation pour ouvrir un autre tampon avec un diff avec magit-diff-staged. (Voir ce numéro .)

idbrii
la source
0

Depuis la magitversion 2.1, vous pouvez l'utiliser dans votre configuration:

;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))
Maiku Mori
la source
Tu ne devrais pas faire ça. Voir ma réponse.
tarsius
@tarsius Vous avez un point valide. Mon cas d'utilisation est que je synchronise mes fichiers dot entre plusieurs ordinateurs et lorsque je définis un défaut, il devrait être par défaut sur tous mes ordinateurs. Si je veux le changer, je le changerai simplement dans ma configuration et il sera synchronisé sur tous mes ordinateurs.
Maiku Mori
1
Oh et je n'utilise pas les options personnalisées car cela rend ma configuration difficile à documenter. Je préfère tout définir explicitement.
Maiku Mori
De plus, le réglage --no-verifyest utile lorsque vous avez des projets qui utilisent des hooks git (à utiliser avec prudence, évidemment).
Droogans