Verwenden Sie magit, um alle Änderungen in zwei Revisionen zu vergleichen

8

Gibt es eine Möglichkeit, Ediff von Magit aus aufzurufen, um die Änderungen an allen Dateien zwischen zwei Revisionen zu vergleichen, nicht nur die Änderungen in einer einzelnen Datei?

Mein Anwendungsfall ist, dass eine Mitarbeiterin mich auffordert, die Änderungen zu überprüfen, die sie in einem Zweig vorgenommen hat und die möglicherweise mehrere Commits betreffen. Ich kann leicht herausfinden, dass ihr Code bei Revision M vom Hauptzweig abgezweigt ist, aber ich bin mir nicht sicher, wie ich Magit dazu bringen kann, alles für mich zu vergleichen.

Es scheint, dass ich es tun kann M-x magit-logund dann E r <M> <branch name>, aber dann fordert es mich auf, die Datei zu vergleichen. In diesem Fall haben sich ungefähr 20 Dateien geändert, daher ist es ärgerlich, die E rReihenfolge für jede Datei zu verknüpfen . Außerdem müsste ich mir merken, welche Dateien ich mir schon angesehen habe.

Im Idealfall möchte ich eines von beiden:

  • Ein Puffer, der jede Datei auflistet und mich darauf klicken lässt, um Ediff zu starten. Er zeigt an, wann ich Ediff gestartet habe (oder ich kann die Datei aus der letzten löschen).
  • Starten Sie für jede geänderte Datei eine Ediff-Sitzung mit einem Puffer, in dem die Sitzungen aufgelistet sind und ich zu ihnen wechseln kann.

Ich denke an so etwas wie das, was ediff-directoriestut.

Existiert diese Fähigkeit?

Dies unterscheidet sich von Wie kann ich zwei Commits in Magit vergleichen? : das will die Änderungen in diesen beiden Revisionen betrachten. Ich möchte die Unterschiede in allen Dateien untersuchen, die sich zwischen diesen beiden Revisionen unterscheiden, unabhängig davon, ob die Änderung in der Revision oder bei einem nicht gemeinsamen Vorfahren aufgetreten ist.

Troy Daniels
quelle

Antworten:

7

Magit kann den Unterschied zwischen zwei Commits als Diff anzeigen . Es gibt viele Möglichkeiten, dies zu tun, einschließlich:

  • d r START..END RET. Sie können STARTmit Abschluss eingeben und nachdem Sie eingegeben haben .., können Sie auch ENDmit Abschluss eingeben .
  • Verwenden Sie in einem Protokoll die Region, um die Commits zwischen STARTund ENDund Typ zu markierend d

Dasselbe wird unterstützt, wenn Sie Ediff teilweise verwenden, aber wie Sie bemerkt haben, müssen Sie dann auch die Datei auswählen, die Sie vergleichen möchten. Während Ediff eine "Sitzungs" -Unterstützungsschnittstelle bereitstellt, implementiert Magit dies noch nicht.

Aber es gibt ein offenes Thema dazu. Es hat jedoch keine hohe Priorität. Ich benutze Ediff nicht selbst und die Implementierung erfordert mehr Wissen über Ediff als über Magit. Jede Hilfe bei dieser Aufgabe wäre dankbar.

Tarsius
quelle