Come posso abilitare il flag `--verbose` per impostazione predefinita nella schermata di commit di magit?


16

In questo momento, invece di premere solo ccin modalità magit, devo premere c-vcogni volta per abilitare --verbose.

È possibile abilitarlo per impostazione predefinita?

Risposte:


17

A partire da v2.1.0Magit usa la libreria magit-popup.elper implementare tali "buffer popup" o "combinazioni prefisso-infisso-suffisso". Nonostante il suo nome, quella libreria può essere utilizzata da pacchetti non correlati a Magit ed è quindi resa disponibile come pacchetto Elpa separato. Adesso ha persino un suo manuale !

Gli argomenti predefiniti ora possono essere impostati direttamente da un buffer popup. Per utilizzare sempre --verbosequando si esegue il commit, procedere come segue:

  1. c Mostra il popup di commit
  2. - v Accendere --verbose
  3. C-x C-sSalva gli argomenti attualmente impostati come predefiniti (nell'opzione personalizzata magit-commit-arguments)

Per impostazione predefinita, tutti i buffer popup terminano con una sezione denominata "Comandi comuni". In caso contrario, utilizzare C-tper mostrarlo. Probabilmente non vorrai vedere quella sezione tutto il tempo e dovresti quindi impostare magit-popup-show-common-commandssu nil.

Ovviamente è anche possibile impostare il valore di magit-commit-argumentse altre variabili simili usando l'interfaccia personalizzata setq, o add-to-list. Ma lo sconsiglio, perché ciò renderebbe impossibile cambiare al volo le impostazioni predefinite.


7

Per quanto posso dire Magit non tiene traccia di opzioni di "default", ma possiamo fare che "stampa -v" ogni volta che il buffer Commettere apre:

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

Per trovare quale funzione consigliare, ho aperto un magic-statusbuffer e premuto C-h k c. Questo mi ha portato a magit-key-mode-popup-committing. Quindi (con il buffer di commit ancora visualizzato) ho premuto C-h k -vper trovare il lambdamodulo che Magit chiama quando si preme -vnella finestra di commit.

Aggiornamento: ho scritto questa risposta in modo indipendente, ma vedi Posso inizialmente selezionare l'opzione "--all" di git-log? , la risposta fornita lì e i commenti a quella risposta.


1
Interessante! Grazie per aver spiegato anche come hai trovato quelle funzioni :)
Dogbert,

@Dogbert: vedi il link nella risposta aggiornata se ti interessa sapere che altri hanno pensato alle opzioni git predefinite non molto tempo fa. :-) (Non so come mi sono perso ieri.)
Costantino,

4

Nelle versioni di magit che usano il transiente (dopo febbraio 2019 o giù di lì), imposta il flag e poi salva mentre sei ancora nel buffer dei transitori.

Quindi, per il commit, la sequenza di tasti sarebbe qualcosa di simile

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

Dopodiché, al successivo richiamo del commit, verrà comunque impostato il verbose. (Non è necessario completare il commit e puoi uscire dopo aver salvato con C-x C-s.)

Il valore predefinito effettivo viene salvato in una transient/directory in .emacs.d/.

Consulta il manuale temporaneo https://magit.vc/manual/transient.html#Saving-Values


0

Sebbene non sia esattamente ciò che desideri (diff nel buffer di commit), puoi impostare magit per espandere le differenze organizzate nella finestra di stato :

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

Il flusso di lavoro magit sembra essere sempre buffer di stato aperto e quindi aprire diviso con buffer di commit, si finisce sempre con due buffer visualizzati. L'impostazione sopra renderà il secondo (precedentemente non utile) display il tuo diff.

Puoi anche usare tsolo per espandere le intestazioni diff (quindi mostra i numeri di riga):

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

Durante la scrittura del diff, è possibile passare al buffer di stato e utilizzare TABper espandere (o piegare) i diff.


In alternativa, è possibile utilizzare C-c C-ddal buffer di commit per aprire un altro buffer con un diff con magit-diff-staged. (Vedi questo numero .)


0

A partire dalla magitversione 2.1, puoi usarlo nella tua configurazione:

;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))

Non dovresti farlo. Vedi la mia risposta
Tarsius,

@tarsius Hai un punto valido. Il mio caso d'uso è che sincronizzo i miei dotfile tra più computer e quando imposto un valore predefinito dovrebbe essere predefinito su tutti i miei computer. Se voglio cambiarlo, lo cambierò nella mia configurazione e sarà sincronizzato su tutti i miei computer.
Maiku Mori,

1
Oh, e non uso le opzioni personalizzate perché rende la mia configurazione difficile da documentare. Preferisco impostare tutto in modo esplicito.
Maiku Mori,

Inoltre, l'impostazione --no-verifyè utile quando si hanno progetti che usano git hook (usare con cautela, ovviamente).
Droogans,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.