Ihr Befehl wird nicht tun, was Sie wollen - Backout tut nur einen einzigen Änderungssatz.
Es gibt jedoch einige Möglichkeiten, drei zusammenhängende Changesets zurückzusetzen, und es hängt wirklich alles davon ab, was Sie in Ihrem Verlaufsdiagramm haben möchten.
wäre der schnellste Weg sein:
hg diff -r 102 -r 99 | hg import --no-commit -
die „nehmen den Unterschied zwischen 102 und 99 (man beachte die umgekehrte Reihenfolge) und wenden Sie es als Patch sagt Danach können Sie das Arbeitsverzeichnis überprüfen würde. und wenn Sie es mögen tun, um eine hg commit --addremove
der Nachteil ist, dass Ihre Geschichte graph wird wie folgt aussehen:.
--[99]---[100]---[101]---[102]---[103]
Wo 103 ist das ne der kombinierten Veränderung von 100, 101 und 102. Das zeigt nicht, was wirklich passiert ist.
Besser wäre hg update 99
tun ein begehen, jede begehen, so dass nun Ihre Geschichte wie folgt aussieht:
--[99]---[100]---[101]---[102]
\
[103]---
und dann tun hg --config ui.merge=internal:local merge 102
, die 102 in 103 verschmolzen und nimmt aber keine der Änderungen von 100, 101 , 102.
das Ihre Geschichte, die wie verlassen:
--[99]---[100]---[101]---[102]
\ \
[103]-------------------[104]
die deutlicher sagt mir, was passiert ist. Entweder funktioniert das aber.
Oder Sie könnten wahrscheinlich nur tun:
hg backout 102
hg backout 101
hg backout 100
, die Ihre Geschichte macht:
--[99]---[100]---[101]---[102]---[103]---[104]---[105]
Wo 103, 104 und 105 sind die Umkehrungen von 102, 101, bzw. 100 , aber das ist nur dumm.
„Wenn das Problem gefunden wird“, sind Sie permanent Changesets für eine temporäre Debug-Sitzung zu begehen einen Fehler zu finden? Klingt für mich wie ein falscher Arbeitsablauf. –