Ich suche nach einem Gegenstück zu git commit --amend
Mercurial, dh nach einer Möglichkeit, das Commit zu ändern, mit dem meine Arbeitskopie verknüpft ist. Ich interessiere mich nur für das letzte Commit, nicht für ein willkürliches früheres Commit.
Die Anforderungen für dieses Änderungsverfahren sind:
Wenn möglich, sollten keine Erweiterungen erforderlich sein. Es dürfen keine nicht standardmäßigen Erweiterungen erforderlich sein , dh Erweiterungen, die nicht mit einer offiziellen Mercurial-Installation geliefert werden.
Wenn die Änderungsverpflichtung ein Leiter meiner aktuellen Niederlassung ist, sollte kein neuer Leiter erstellt werden. Wenn das Commit kein Kopf ist, kann ein neuer Kopf erstellt werden.
Das Verfahren sollte so sicher sein , dass ich, wenn die Änderung aus irgendeinem Grund fehlschlägt, die gleiche Arbeitskopie und den gleichen Repository-Status wie vor der Änderung wiederherstellen möchte. Mit anderen Worten, wenn die Änderung selbst fehlschlagen kann, sollte es eine ausfallsichere Prozedur geben, um die Arbeitskopie und den Repository-Status wiederherzustellen. Ich beziehe mich auf "Fehler", die in der Art des Änderungsverfahrens liegen (wie z. B. Konflikte), nicht auf Probleme im Zusammenhang mit dem Dateisystem (wie Zugriffsbeschränkungen, das Nicht-Sperren einer Datei zum Schreiben, ... )
Update (1):
- Die Prozedur muss automatisierbar sein , damit sie von einem GUI-Client ausgeführt werden kann, ohne dass eine Benutzerinteraktion erforderlich ist.
Update (2):
- Dateien im Arbeitsverzeichnis dürfen nicht berührt werden (möglicherweise gibt es Dateisystemsperren für bestimmte geänderte Dateien). Dies bedeutet insbesondere, dass ein möglicher Ansatz zu keinem Zeitpunkt ein sauberes Arbeitsverzeichnis erfordern kann.