Nie wierzę, że niezaangażowane zmiany są z natury złe. Odwołujesz się do „niemożności scalenia się z nimi” - jeśli masz niezaakceptowaną zmianę w jakimś pliku, a wyciągniesz i zaktualizujesz zmianę do tego pliku, Mercurial rozpocznie proces scalania tak, jakbyś go popełnił, a następnie poprosił o połączenie. Miałeś na myśli coś innego?
Tak więc w przypadku lokalnych zmian, których nie chcesz jeszcze udostępniać innym programistom, masz dwa podejścia. Pierwszym jest zachowanie zmian w kopii roboczej, ale nie wypychanie ich, a drugim - odłożenie ich na bok, poza kopię roboczą. Wybór zależy od tego, czy chcesz, aby te zmiany były dostępne podczas pracy.
Jeśli zachowasz je w kopii roboczej, nadchodzące zmiany będą działać dobrze, więc musisz tylko unikać tworzenia zmian wychodzących, a to oznacza, że nie będziesz ich zatwierdzać. Jeśli pliki są nowe, to proste - po prostu hg add
ich nie rób . Jeśli są już śledzone, możesz w szczególności wykluczyć je z zatwierdzeń za pomocą hg commit --exclude foo.txt
. Jeśli masz dużą liczbę plików do wykluczenia lub będziesz je wykluczał z wielu zatwierdzeń (np. W celu trwałej zmiany lokalnego pliku konfiguracyjnego), spójrz na rozszerzenie wykluczania .
Jeśli jesteś przygotowany na przesunięcie zmian na bok, masz inny zestaw opcji. Najprostszą rzeczą jest po prostu użycie hg diff
plików do utworzenia łatki opisującej je, którą przechowujesz w bezpiecznym miejscu, a następnie hg patch --no-commit
ponowne zastosowanie tej łatki, gdy chcesz przywrócić zmiany. Można dokonać tego gładsza instalując rozszerzenie do półek , z rozszerzeniem na poddaszu , albo jakiś inny krewny. Możesz także użyć rozszerzenia kolejek , ale używasz młota, aby złamać orzecha. Możesz nawet po prostu zatwierdzić zmiany, a następnie zaktualizować z powrotem do rodzica i tam wykonać inną pracę, pozostawiając zmiany w hg commit -m 'temporary branch' && hg up $(hg log -r 'parents(.)' --template '{node}')
uproszczonej anonimowej gałęzi - (chociaż może być łatwiej to zrobić ręcznie!). Trzeba jednak uważać, aby nie wcisnąć tego zestawu zmian.