Jak sprawić, aby flaga `--verbose` była domyślnie włączona na ekranie zatwierdzania magit?

16

W tej chwili zamiast naciskać tylko cc w trybie magit, muszę naciskać za c-vckażdym razem, aby włączyć --verbose.

Czy można włączyć to domyślnie?

Wile E. Coyote
źródło

Odpowiedzi:

18

Począwszy od v2.1.0Magit używa biblioteki magit-popup.eldo implementacji takich „buforów podręcznych” lub „kombinacji przedrostek-infix-przyrostek”. Mimo swojej nazwy, biblioteka ta może być używana przez pakiety niezwiązane z Magit, dlatego jest udostępniana jako osobny pakiet Elpa. Ma nawet swoje własną instrukcję !

Domyślne argumenty można teraz ustawić bezpośrednio z bufora podręcznego. Aby zawsze używać --verbosepodczas zatwierdzania, wykonaj następujące czynności:

  1. c Pokaż zatwierdzające wyskakujące okienko
  2. - v Włączyć --verbose
  3. C-x C-s Zapisz aktualnie ustawione argumenty jako domyślne (w opcji niestandardowej magit-commit-arguments )

Domyślnie wszystkie bufory podręczne kończą się sekcją o nazwie „Typowe polecenia”. Jeśli nie, użyj, C-taby to pokazać. Prawdopodobnie nie chcesz cały czas widzieć tej sekcji i dlatego powinieneś ją ustawićmagit-popup-show-common-commands się nil.

Oczywiście możliwe jest również ustawienie wartości magit-commit-argumentsi innych takich zmiennych za pomocą interfejsu niestandardowego setq, lub add-to-list. Ale odradzam to, ponieważ uniemożliwiłoby to zmianę ustawień domyślnych w locie.

Tarsjusz
źródło
7

O ile wiem, Magit nie śledzi „domyślnych” opcji, ale możemy sprawić, że „naciska -v” za każdym razem, gdy pojawia się bufor zatwierdzania:

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

Aby znaleźć zalecaną funkcję, otworzyłem magic-statusbufor i nacisnąłem C-h k c. Doprowadziło mnie to do magit-key-mode-popup-committing. Następnie (buforem popełnienie nadal wyświetlany) Nacisnąłem C-h k -vznaleźć lambdaformularza połączeń MAGIT kiedy ty naciśnięciu -vw oknie popełnienie.

Aktualizacja: Napisałem tę odpowiedź niezależnie, ale patrz: Czy mogę wstępnie wybrać opcję „--all” git-log? , udzieloną tam odpowiedź i komentarze do tej odpowiedzi.

Konstantyn
źródło
1
To interesujące! Dziękujemy za wyjaśnienie, w jaki sposób znalazłeś te funkcje :)
Wile E. Coyote,
@Dogbert: proszę zobaczyć link w zaktualizowanej odpowiedzi, jeśli chcesz wiedzieć, że inni myśleli o domyślnych opcjach git jeszcze niedawno. :-) (nie wiem, jak mi się wczoraj tęskniło)
Constantine,
4

W wersjach magit, które używają przejściowych (po około lutym 2019 r.), Ustaw flagę, a następnie zapisz, wciąż będąc w buforze przejściowym.

Tak więc dla zatwierdzenia sekwencja klawiszy byłaby podobna

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

Następnie, przy następnym wywołaniu zatwierdzenia, szczegółowe ustawienie będzie nadal ustawione. (Nie musisz dokończyć zatwierdzenia i możesz wyjść po zapisaniu za pomocąC-x C-s .)

Rzeczywiste wartości domyślne są zapisywane w transient/katalogu w .emacs.d/.

Zobacz instrukcję przejściową https://magit.vc/manual/transient.html#Saving-Values

mhb
źródło
0

Chociaż nie jest to dokładnie to, czego chcesz (różnicę w buforze zatwierdzania), możesz ustawić magit, aby rozwijał różnice stopniowe w stanie oknie :

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

Przepływ pracy magit zawsze wydaje się być otwartym buforem stanu, a następnie otwartym dzieleniem z buforem zatwierdzania, zawsze wyświetlane są dwa bufory. Powyższe ustawienie spowoduje, że drugi (wcześniej nieużyteczny) bufor wyświetli różnicę.

Możesz także użyć, taby rozwinąć tylko nagłówki różnic (więc pokazuje numery linii):

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

Podczas pisania pliku różnic możesz przejść do bufora stanu i użyć go TABdo rozszerzenia (lub złożenia) różnic.


Alternatywnie możesz użyć C-c C-dbufora zatwierdzania, aby otworzyć inny bufor z różnicą magit-diff-staged. (Zobacz ten problem .)

idbrii
źródło
0

Od magitwersji 2.1możesz użyć tego w swojej konfiguracji:

;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))
Maiku Mori
źródło
Nie powinieneś tego robić. Zobacz moją odpowiedź.
tarsius
@tarsius Masz ważny punkt. Mój przypadek użycia polega na tym, że synchronizuję pliki dot między wieloma komputerami, a kiedy ustawię domyślną, powinna ona być domyślna na wszystkich moich komputerach. Jeśli chcę to zmienić, po prostu zmienię to w mojej konfiguracji i zostanie zsynchronizowane na wszystkich moich komputerach.
Maiku Mori,
1
Aha i nie używam niestandardowych opcji, ponieważ utrudnia to moją konfigurację. Wolę wszystko ustawiać jawnie.
Maiku Mori,
Również ustawienie --no-verifyjest przydatne, gdy masz projekty, które używają haczyków git (używaj oczywiście z ostrożnością).
Droogans,