Haftungsausschluss: Ich bin neu in der Software-Entwicklung, so dass meine Terminologie nicht korrekt sein kann.Bereinigen lokalen Niederlassungen in mercurial
Der aktuelle Quellcode sieht wie folgt aus etwas (dieses Projekt verwenden Mercurial für die Versionskontrolle):
---(r 1000) -> (r 1001) -> (r 1002) master, remote
\
(r 1003) -> (r 1004) -> (r 1005) feature1, local
benutzte ich einen proprietären 3-rd Party-Header in (r 1004) und ersetzt damit eine Open-Source-Alternative in (r 1005). Mein Verständnis ist, dass es immer noch im Protokoll angezeigt wird, was ich vermeiden möchte. Ich möchte (r 1004) vollständig löschen. Wie mache ich das, indem ich die obige Darstellung als Beispiel verwende?
Wird 'hg strip -r 1004'' r 1003 -> r 1005' im lokalen Zweig behalten? – user103500
Ja, es ist eine Art wie Git 'Rebase -i' und Löschen einer 'Pick'-Linie, in Bezug auf den Gesamteffekt (obwohl die zugrunde liegende Implementierung ist ganz anders). Beachten Sie, dass hg jetzt auch "histedit" hat, was noch mehr wie "git rebase -i" ist (und ähnlicher in der Implementierung). – torek
Erk, ich habe gerade die Mercurial 'strip'-Dokumentation überprüft und es heißt, dass sie die Revision * und alle ihre Nachkommen * entfernt. Meine Antwort hier war falsch. Sie müssen stattdessen "hg histedit" verwenden! – torek