Osobiście nie podoba mi się żadna z dotychczas opublikowanych odpowiedzi:
- Nie lubię rozgałęziania klonów, ponieważ lubię, aby każdy projekt miał tylko jeden katalog. Praca na różnych katalogach w tym samym czasie całkowicie psuje historię ostatnich plików moich redaktorów. Zawsze kończy się zmianą niewłaściwego pliku. Więc już tego nie robię.
- Używam
shelve
do szybkich poprawek (tylko po to, aby przenieść moje niezaangażowane zmiany do innej gałęzi, jeśli zdaję sobie sprawę, że jestem w złym). Mówisz o dniach, nie ma mowy, bym odłożył coś na kilka dni.
- Myślę, że
mq
jest to zbyt skomplikowane na tak zwyczajną sytuację
Myślę, że najlepszym sposobem jest po prostu zatwierdzenie zmian, niż powrót do zestawu zmian, zanim rozpoczniesz te zmiany i zaczniesz od tego. Jest kilka drobnych problemów, zilustruję:
Powiedzmy, że masz zestaw zmian A. Następnie rozpocznij zmiany. W tym momencie chcesz go odłożyć na chwilę. Przede wszystkim oddaj swoją pracę:
hg ci -m "Working on new stuff"
Jeśli chcesz, możesz dodać zakładkę, aby ułatwić późniejszy powrót. Zawsze tworzę zakładki do moich anonimowych oddziałów.
hg bookmark new-stuff
Wróć do zestawu zmian sprzed tych modyfikacji
hg update A
Od tego momentu pracujesz i generujesz zestaw zmian C. Teraz masz 2 głowy (B i C), zostaniesz ostrzeżony, gdy spróbujesz pchnąć. Możesz wypchnąć tylko jedną gałąź, określając nagłówek tej gałęzi:
hg push -r C
Lub możesz zmienić fazę new-stuff
gałęzi na tajną. Tajne zestawy zmian nie zostaną przesłane.
hg phase -r new-stuff --secret --force