Kann ich die Git-Log-Option "--all" zunächst auswählen lassen?

7

Wenn ich im Magit-Hauptstatusmodus die Taste "l" drücke, wird ein Fenster geöffnet, in dem ich die Optionen anpassen kann, die an den magit logBefehl übergeben werden sollen. Kann ich dafür sorgen, dass die --allOption immer so ausgewählt wird, wie sie --graphist?

Sean
quelle
Der Tag wird kommen, an dem Sie das nicht wollen, aber bis dahin wird es zu spät sein.
Sean Allred
Siehemagit-key-mode.el:715
Sean Allred
Zu spät für was?
Sean
Oh, ich entschuldige mich :) Ich habe die --allOption, alle Protokolleinträge anzuzeigen, falsch verstanden. Mein Fehler! :)
Sean Allred

Antworten:

8

Sie können einen benutzerdefinierten Befehl definieren, um das zu tun, was Sie möchten, und ihn binden l, um das Standardverhalten zu überschreiben:

(defun magit-log-all ()
  (interactive)
  (magit-key-mode-popup-logging)
  (magit-key-mode-toggle-option (quote logging) "--all"))

(define-key magit-mode-map (kbd "l") 'magit-log-all)

Wenn dies aktiviert ist, wird ldurch magit-modeautomatisches Drücken die --allOption im angezeigten Menü ausgewählt.


Zusätzliche Information

Falls Sie neugierig sind, bin ich wie folgt zu der obigen Lösung gekommen: Es sind zwei Schritte erforderlich, um Optionen für festzulegen git log. Zunächst rufen Sie das Menü zur Auswahl der Optionen auf, indem Sie auf drücken l. Um zu sagen magit, dass die --allOption übergeben werden soll git log, müssen Sie drücken -al. Wenn Sie einen benutzerdefinierten Befehl definieren möchten, um diesen Prozess zu automatisieren, müssen Sie wissen, welche Befehle an diese Tastendrücke gebunden sind. Diese Informationen erhalten Sie durch Drücken von C-h c( describe-key-briefly) oder C-h k( describe-key) gefolgt von der Tastenfolge, die Sie untersuchen möchten.

  1. C-h c lin einem magit-modePuffer gibt:

    l führt den Befehl aus magit-key-mode-popup-logging

  2. C-h c -al nach dem Drücken l in einen magit-modePuffer ergibt:

    - a l führt den Befehl aus (lambda nil (interactive) (magit-key-mode-toggle-option (quote logging) "--all"))

Ausgestattet mit diesen Informationen müssen Sie lediglich einen Befehl erstellen, der die relevanten Funktionen in der richtigen Reihenfolge aufruft.

itsjeyd
quelle
Ich hatte auf eine Konfigurationseinstellung gehofft, aber das wird gut funktionieren. Weitere Optionen sind das Empfehlen magit-key-mode-popup-loggingund Binden lan ein Tastaturmakro.
Sean
@ Sean Ich würde ein Problem auf GitHub eröffnen - es wird im Code als etwas vermerkt, das verbessert werden muss; Vielleicht warteten sie auf jemanden mit der Not.
Sean Allred
2
Dies ist nicht erforderlich, da im nächsten Zweig die Unterstützung für das Festlegen von Standardargumenten bereits implementiert ist.
Tarsius
2

Beginnend mit v2.1.0dem Protokollierungs-Popup von Magit enthält das --allInfix-Argument nicht mehr . Stattdessen bietet das Popup drei neue zugehörige Suffixbefehle .

  • l LLokale Zweige protokollieren ( --branches)
  • l bAlle Zweige protokollieren ( --branches --remotes)
  • l aAlle Referenzen protokollieren ( --all)

Während es nicht mehr möglich (oder notwendig) ist, das --allArgument festzulegen, möchten Sie möglicherweise den Standardwert eines anderen Arguments ändern. Siehe Wie kann ich das Flag "--verbose" standardmäßig im Magit-Commit-Bildschirm aktivieren? für Informationen darüber.

Tarsius
quelle