16 Stimmen

Ist es möglich, eine Zusammenfassung nach einer Übertragung mit TortoiseHg zu bearbeiten?

Gelegentlich übertrage ich etwas Code in das Repository, füge einen Kommentar/eine Zusammenfassung hinzu, lese dann die Zusammenfassung und stelle fest, dass ich einen Fehler gemacht habe oder etwas mehr Informationen hätte einfügen sollen. Ist es möglich, die Zusammenfassung nach einer Übertragung in TortoiseHg zu bearbeiten? Ich benutze Version 1.1

11voto

Neil Trodden Punkte 4663

Verwenden Sie Mercurial-Warteschlangen, um die Änderungssätze in Patches umzuwandeln, entfernen Sie dann diese Änderungssätze und wenden Sie die Patches wieder auf Ihr Repository an.

Wenn die Patches erstellt werden, werden sie im Ordner .hg/patches in Ihrem Repository gespeichert, und Sie können diese bearbeiten (einschließlich der Übergabemeldung), bevor Sie sie erneut anwenden.

  • Aktivieren Sie die Mercurial Queues Erweiterungen (MQ)
  • Klicken Sie mit der rechten Maustaste und wählen Sie Revision in MQ importieren für jeden Änderungssatz, um sie in Patches in der Patch-Warteschlange umzuwandeln
  • Aktivieren Sie das Fenster der Patch-Warteschlange über das Menü "Ansicht
  • Wählen Sie die Alle Patches aufheben Pfeil in der Patch-Warteschlange, um die Änderungssätze zu entfernen
  • Bearbeiten Sie die Patch-Dateien in .hg/patches
  • Wählen Sie Alle Patches anwenden
  • Klicken Sie mit der rechten Maustaste auf den Patch und wählen Sie Angewandtes Finish um die Warteschlange zu schließen

7voto

wRAR Punkte 24128

Wenn dies die letzte Übergabe war, können Sie die Schaltfläche "Rückgängig" im Übergabedialog drücken (es ist eine Schnittstelle zu hg rollback ) und dann die gleichen Dateien mit einer neuen Nachricht erneut übertragen. Wenn dies eine Übergabe in der Mitte des Baums ist, müssen Sie mq Erweiterung, um alle späteren Übertragungen zu löschen und sie erneut anzuwenden. Und wenn der Commit mit einer falschen Zusammenfassung in ein öffentliches Repo gepusht wird, sollten Sie das akzeptieren und damit leben, denn Sie sollten veröffentlichte Commits nicht ändern.

6voto

dls Punkte 4126

Phil - Ich werde die gleiche Antwort geben, die ich gerade auf diese Frage (nach Ihrer Frage):

Ein geeigneter Weg, dies zu tun, ist die Verwendung von histedit. Mit Histedit können Sie Ihre früheren Übertragungen entfernen, ändern, kombinieren oder anderweitig bearbeiten.

Histedit wird nicht mit Mercurial ausgeliefert und kann nicht mit TortoiseHg verwendet werden, aber die Verwendung auf der Kommandozeile ist sehr einfach:

> hg histedit <rev>

wo sich die Revision befindet, deren Kommentar Sie ändern möchten. Histedit erstellt eine Liste der Änderungssätze und zeigt Ihnen deren SHA1 an. Neben jedem Änderungssatz steht ein Wort, das angibt, was Histedit mit jedem Änderungssatz tun wird, sobald Sie das Textfenster schließen. Ersetzen Sie neben dem Änderungssatz, den Sie ändern möchten, "pick" durch "edit". Schließen Sie das Textfenster und geben Sie dann diesen Befehl ein:

> hg histedit --continue

und es erscheint ein weiteres Textfenster mit der Protokollmeldung. Ändern Sie die Meldung nach Ihren Wünschen. Sie können dies für mehrere Änderungssätze in einem Durchgang tun, vorausgesetzt die Dateien wurden noch nicht freigegeben. Dies ist eine ziemlich triviale Anwendung von histedit, kompliziertere Anwendungen beinhalten das Kombinieren von Commits oder das Entfernen eines Teils eines Commits.

3voto

Jon Davis Punkte 6322

Nach den Antworten zu urteilen lautet die zusammenfassende Antwort also,

Ja ist es möglich, dass die letzte Aktion die Übergabe des fraglichen Änderungssatzes war (in diesem Fall führen Sie die Rollback Befehl), und

Non ist es nicht möglich, nicht "out of the box" (ohne die mq-Erweiterung und eine Menge Gruntwork), wenn das betreffende Changeset bereits gepusht wurde oder nachfolgende Check-Ins vorgenommen wurden.

Ich poste diese Antwort, weil die anderen Antworten das "Nein" nicht zuließen, sondern nur das "Wenn". :) Es steht Ihnen frei, die Antwort abzulehnen, ich wollte nur die Schlussfolgerungen hier klarstellen.

2voto

prime23 Punkte 3282

Hg 2.2 hat gerade die git -wie --amend Option. (Siehe die hg 2.2 Veröffentlichungshinweise .)

Sie können dies also über die Befehlszeile tun:

hg commit --amend

Siehe auch Mercurial: Wie kann man den letzten Commit ändern?

Ich habe noch nicht herausgefunden, wie man das in TortoiseHg macht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X