2011-02-07 12 views

Odpowiedz

13

Można zrobić nowe repo z hg clone.

hg clone -r last_good_changeset localrepo newlocalrepo 
+0

To jest moja ulubiona odpowiedź, ponieważ nie wymaga żadnych rozszerzeń. można łatwo sklonować podzbiór repozytorium i jest prawie natychmiastowy. –

+0

@ Ry4an ... właśnie zdałem sobie sprawę, że faktycznie odpowiedziałeś na to: http://stackoverflow.com/questions/4172753/how-to-get-rid-of-some-changeset-in-hg/4173512#4173512! +1 na oryginalną odpowiedź;) – VonC

+0

heh, nie martw się. Byłem lepszy w tych rzeczach, które starałbym się zadać jako duplikat. –

22

Można użyć polecenia hg strip, część przedłużenia mq:

hg strip REV 

To usunie tę zmianę + wszystkie jego potomków.

Zanim spróbujesz to zrobić kopię/klon repozytorium do eksperymentowania w

+1

Uważam, że to powinna być prawdziwa odpowiedź na to pytanie. Drugi to klon repo, który został specjalnie zgłoszony, aby NIE BYĆ OPCJĄ w pierwotnym pytaniu ("bez konieczności ponownego klonowania"). Kiedy szukałem tego samego rozwiązania co oryginalny post, to odpowiada na moje pytanie, a drugie NIE jest związane z klonem ... Jeśli drugie jest odpowiedzią, to oryginalny plakat chciałby, gdyby pytanie zostało zaktualizowane, aby to odzwierciedlić i pomóc ludzie podczas wyszukiwania? – GazB

+0

Zgadzam się z Tobą GazB –

+0

Instrukcje dotyczące włączenia rozszerzenia 'Strip' są dostępne na [Hg Wiki for Strip] (https://www.mercurial-scm.org/wiki/StripExtension). –

0

Jeśli używasz rtęciowego zaćmienie, można cofnij raz, a następnie odłóż te zmiany, a następnie wyeksportuj wiele sekwencyjnych zatwierdzeń jako poprawki, usuń te zatwierdzenia, a następnie zaimportuj te poprawki w tej samej kolejności, więc w przypadku gdy masz kolidujące ze sobą łatki, nadpisują się nawzajem w pożądany sposób.

Na koniec możesz anulować swoje pierwsze wycofanie. Osiąga taki sam efekt, jak gdybyś cofnął się więcej niż raz.