Mam świadomość, że wycofywanie może usunąć zatwierdzenia z najnowszego zestawu zmian w lokalnym repozytorium. Czy jest jednak możliwe usunięcie wszystkich ostatnich zatwierdzeń od poprzedniego, bez konieczności ponownego klonowania repozytorium udziałów?Cofnij wielokrotne zatwierdzenia (przed wypchnięciem) w produkcie Mercurial
Odpowiedz
Można zrobić nowe repo z hg clone
.
hg clone -r last_good_changeset localrepo newlocalrepo
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
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
Zgadzam się z Tobą GazB –
Instrukcje dotyczące włączenia rozszerzenia 'Strip' są dostępne na [Hg Wiki for Strip] (https://www.mercurial-scm.org/wiki/StripExtension). –
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.
To jest moja ulubiona odpowiedź, ponieważ nie wymaga żadnych rozszerzeń. można łatwo sklonować podzbiór repozytorium i jest prawie natychmiastowy. –
@ 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
heh, nie martw się. Byłem lepszy w tych rzeczach, które starałbym się zadać jako duplikat. –