2012-08-14 16 views
5

W moim repozytorium musiałem powrócić do starszej wersji. Wróciłem i wprowadziłem zmiany, których potrzebowałem. Jak wypchnąć nową wersję w górę?Usuwanie wersji w TortoiseHG i Mercurial

Byłem na rev 17, kiedy musiałem powrócić do rev 13. Teraz, gdy wprowadziłem moje zmiany, jestem na rev 18. Rzecz w tym, że kiedy idę, aby popchnąć te zmiany (jestem używając TortoiseHG), pojawia się błąd "abort:push create new remote head.

Nie chcę robić scalenia. Czy chcę wykonać polecenie z poleceniem --force, czy też muszę usunąć rev 14-17. Jeśli muszę usunąć, jak mogę usunąć 14-17.?

Odpowiedz

3

Nie chcesz usuwać wersji i dlatego niszczyć historię. Jest to sprzeczne z powodem kontroli wersji.

Możesz zrobić merge and discard.

Możesz to również zrobić w tortoiseHG.

enter image description here

11

Prawidłowe rozwiązanie jest rzeczywiście łączyć z opcją Discard all changes from merge target (other) revision. Ale czasami życie jest dla nas trudniejsze i naprawdę musimy znieść pewne zmiany (np. Popełniliśmy kody wyrzutów jądrowych lub inne dane wrażliwe na bezpieczeństwo). Czy to twoja sprawa? Jeśli tak, to wykonaj.

Zakładając, że oryginalne zmiany nie zostały opublikowane możesz:

  • umożliwić mq przedłużenie
  • r kliknąć zmian przestępczych i wykonać Modify history->Strip. Spowoduje to trwałe usunięcie zmian z historii lokalnej.