Oto ściągawka na polecenia:
hg update
zmienia wersję nadrzędną kopii roboczej, a także zmienia zawartość pliku, aby pasowała do tej nowej wersji nadrzędnej. Oznacza to, że nowe zatwierdzenia będą kontynuowane od zaktualizowanej wersji.
hg revert
zmienia tylko zawartość pliku i pozostawia samą wersję nadrzędną kopii roboczej. Zazwyczaj używasz tego, hg revert
gdy decydujesz, że nie chcesz zachować niezatwierdzonych zmian, które wprowadziłeś w pliku w kopii roboczej.
hg branch
uruchamia nowy nazwany oddział. Pomyśl o nazwie gałęzi jako etykiecie, którą przypisujesz do zestawów zmian. Jeśli tak hg branch red
, to następujące zestawy zmian zostaną oznaczone jako należące do „czerwonej” gałęzi. Może to być dobry sposób na organizowanie zestawów zmian, szczególnie gdy różne osoby pracują w różnych gałęziach, a później chcesz sprawdzić, skąd pochodzi zestaw zmian. Ale nie chcesz go używać w swojej sytuacji.
Jeśli użyjesz hg update --rev 38
, to zestawy zmian 39–45 zostaną pozostawione jako ślepy zaułek - zwisająca głowa, jak to nazywamy. Otrzymasz ostrzeżenie, gdy będziesz pchać, ponieważ będziesz tworzyć „wiele głów” w repozytorium, do którego pchasz. Jest to ostrzeżenie, ponieważ jest to trochę niegrzeczne, aby pozostawić takie głowy, ponieważ sugerują, że ktoś musi wykonać scalenie. Ale w twoim przypadku możesz po prostu iść naprzód, a hg push --force
ponieważ naprawdę chcesz pozostawić go wisi.
Jeśli jeszcze nie wysłałeś wersji 39-45 w inne miejsce, możesz zachować ich prywatność. To bardzo proste: hg clone --rev 38 foo foo-38
otrzymasz nowy lokalny klon, który zawiera tylko wersję 38. Możesz kontynuować pracę foo-38
i wypychać nowe (dobre) zestawy zmian, które tworzysz. Nadal będziesz mieć stare (złe) wersje w swoim foo
klonie. (Możesz zmienić nazwę klonów w dowolny sposób, np. foo
Na foo-bad
i foo-38
na foo
.)
Na koniec możesz także użyć, hg revert --all --rev 38
a następnie zatwierdzić. Spowoduje to utworzenie wersji 46, która wygląda identycznie jak wersja 38. Następnie będziesz kontynuować pracę od wersji 46. To nie stworzy rozwidlenia w historii w taki sam wyraźny sposób, jak to hg update
zrobiono, ale z drugiej strony nie będziesz narzekać na to, że masz wiele głów. Przydałby mi się, hg revert
gdybym współpracował z innymi, którzy już stworzyli własną pracę na podstawie wersji 45. W przeciwnym razie hg update
jest bardziej wyraźna.