Magit hat in letzter Zeit Unterstützung für so etwas erhalten, aber das Feature ist immer noch etwas rau und muss explizit aktiviert werden.
Eine ähnliche Funktion gibt es schon seit langer Zeit: Wenn Sie in einem Protokollpuffer von einem Commit zu einem anderen wechseln und in demselben Frame ein anderes Fenster als Revisionspuffer des Repositorys angezeigt wird, wird dieser Puffer aktualisiert, um das Commit anzuzeigen, anstatt das Commit auszuführen wurde zuvor gezeigt.
Bis vor kurzem wurde der Revisionspuffer erstellt, als Sie das erste Mal von einem Commit zu einem anderen verschoben haben. Ich habe dieses Verhalten geändert und jetzt wird der Revisionspuffer immer nur aktualisiert . Wenn in keinem Fenster desselben Frames bereits dieser Puffer angezeigt wird, wird der Puffer beim Bewegen im Protokoll nicht mehr in einem neuen Fenster oder in einem vorhandenen Fenster angezeigt, in dem zuvor ein anderer Puffer angezeigt wurde.
Jetzt müssen Sie einmal drücken SPC, um den Revisionspuffer anzuzeigen. Erst dann wird es aktualisiert, wenn Sie sich im Protokollpuffer bewegen.
Wenn Sie nicht möchten, dass der Revisionspuffer aktualisiert wird, gehen Sie wie folgt vor:
(remove-hook 'magit-section-movement-hook
'magit-log-maybe-update-revision-buffer)
Wenn Sie andererseits auch möchten, dass der Revisionspuffer aktualisiert wird, wenn Sie sich im Statuspuffer bewegen, verwenden Sie Folgendes:
(add-hook 'magit-section-movement-hook
'magit-status-maybe-update-revision-buffer)
Es ist jetzt möglich, dass ein Blob-Puffer auf ähnliche Weise automatisch aktualisiert wird. Fügen Sie zuerst Folgendes hinzu:
(add-hook 'magit-section-movement-hook
'magit-log-maybe-update-blob-buffer)
Und vielleicht auch:
(add-hook 'magit-section-movement-hook
'magit-status-maybe-update-blob-buffer)
Drücken Sie dann in einem Protokoll- (oder Status-) Puffer RET, um den Revisionspuffer anzuzeigen oder zu aktualisieren und auch zu diesem Puffer zu wechseln. Gehen Sie zu der gewünschten Datei und drücken Sie RETerneut. Sie befinden sich jetzt in einem "Blob-Visiting" -Puffer, der einem Dateibesuchspuffer ähnelt, mit der Ausnahme, dass nicht die Datei im Arbeitsbaum, sondern die Datei wie in einem Commit aufgerufen wird.
Wechseln Sie zurück in den Protokoll- (oder Status-) Puffer und wechseln Sie zu einem anderen Commit. Der Blob-Puffer wird aktualisiert.
Beachten Sie, dass beim Anzeigen eines anderen Blobs der vorhandene Blob-Puffer nicht wiederverwendet wird. Stattdessen wird ein neuer Puffer erstellt, der diesen Blob aufruft und dann den Puffer in dem Fenster anzeigt, in dem zuvor der andere Blob-Puffer angezeigt wurde. Dieser andere Puffer wird nicht gelöscht, was leider zur Folge hat, dass sich in kurzer Zeit einige Puffer ansammeln können. Welches wäre eine dieser Ecken und Kanten, die ich bereits erwähnt habe. Durch Drücken qauf einen Blob-Puffer wird dieser gelöscht. Sie können also aufräumen, indem Sie zu dem Fenster gehen, in dem die verschiedenen Blob-Puffer angezeigt wurden, und qsolange drücken, bis alle Puffer gelöscht wurden.
Zusätzlich ist es möglich, aus einem Blob-Puffer mit pund zum nächsten oder vorherigen Blob zu navigieren n. Ich gehe davon aus, dass Sie in den meisten Fällen mit einem kürzlich aufgetretenen Blob beginnen und dann mithilfe von zu älteren Blobs zurückkehren p. Wenn Sie das tun und sich dann in die andere Richtung bewegen möchten, empfehle ich Ihnen q, den aktuellen Puffer zu löschen und damit zum vorherigen Puffer, dh zum nächsten Blob, zu wechseln .
Beachten Sie auch, dass Sie nicht erst eine Revision aufrufen müssen, um einen Blob aufzurufen. Sie könnten auch M-x magit-find-file RET <revision> RET <file> RET
direkt verwenden, aber ich finde das weniger bequem.