Mit hg's graft
y strip
scheint eine einfachere Alternative zur Verwendung von MQ/Patches/Evolve zu sein.
Mit dieser Methode können Sie graft
Ihre Übertragungen auf einen 2. doppelten Zweig (unter Verwendung der Datumsänderungsfunktion von graft
). Und von dort aus können Sie dann einfach strip
den Zweig mit den schlechten Daten zurück Nehmen wir an, Sie haben versehentlich einige Commits mit falschen Daten erstellt und Ihr Verlauf sieht wie das folgende Diagramm aus:
> hg log -GT'{rev}:{desc} ({date|isodatesec})'
@ 8:good commit (2018-03-18 20:13:07 2018 -0500)
|
o 7:erroneous commit two (2018-12-01 00:00:00 2018 -0600)
|
o 6:erroneous commit one (2018-12-01 00:00:00 2018 -0600)
|
o 5:commit before you started commiting bad dates
Um dies zu beheben, aktualisieren Sie einfach auf die letzte gute Revision vor Ihren fehlerhaften Übertragungen und kopieren Sie dann die Übertragungen in einen neuen (anonymen) Zweig mit graft
:
> hg up 5
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
> hg graft -D -r6 -r7 -r8
> hg log -GT'{rev}:{desc} ({date|isodatesec})'
@ 11:good commit (2018-03-18 20:14:48 2018 -0500)
|
o 10:erroneous commit two (2018-03-18 20:14:48 2018 -0500)
|
o 9:erroneous commit one (2018-03-18 20:14:48 2018 -0500)
|
| o 8:good commit (2018-03-18 20:13:07 2018 -0500)
| |
| o 7:erroneous commit two (2018-12-01 00:00:00 2018 -0600)
| |
| o 6:erroneous commit one (2018-12-01 00:00:00 2018 -0600)
|/
o 5:commit before you started commiting bad dates
Jetzt haben Sie zwei identische Zweige mit denselben Commits, aber unterschiedlichen Daten. Jetzt müssen Sie nur noch Ihren linearen Verlauf zurückgeben, indem Sie strip
auf dem alten Zweig:
> hg strip -r6 -r7 -r8
saved backup bundle to /home/miles/repo/.hg/strip-backup/ac1973513844-a8f5244e-backup.hg
> hg log -GT'{rev}:{desc} ({date|isodatesec})'
@ 8:good commit (2018-03-18 20:14:48 -0500)
|
o 7:erroneous commit two (2018-03-18 20:14:48 -0500)
|
o 6:erroneous commit one (2018-03-18 20:14:48 -0500)
|
o 5:commit before you started commiting bad dates