Jak zrezygnować z połączenia hg?
Jestem nowy w współpracy z Mercurial. Moja sytuacja:
- inny programista zmienił rev 1 Pliku, aby zastąpić 4-spacje wcięciami 2-spacjami. (Tzn. zmieniał każdą linię.) Call that rev 2, pushed to the remote repo.
- wprowadziłem zmiany merytoryczne rev 1 z różnymi zmianami kodu w moim lokalnym obszarze roboczym. Nazwij to rev 3.
- mam
hg pull
ed ihg merge
D bez jasnego pojęcia o tym, co się dzieje. - konflikty są niezliczone i nie do końca merytorycznie.
Więc naprawdę żałuję, że nie zmieniłem mojego lokalnego repo na 2-space wcięcia przed scaleniem; wtedy scalenie będzie trywialne (zakładam). Ale nie mogę się wycofać. Myślę, że muszę hg update -r 3
, ale jest napisane abort: outstanding uncommitted merges
.
Jak mogę cofnąć scalenie, zmienić odstępy w moim lokalnym repo i remerge?
4 answers
Możesz odrzucić niezatwierdzone zmiany używając flagi-C (lub --clean):
hg update -C -r 3
[3]} strzeż się: wszystko, co nie zostało popełnione, zniknie!
Następnie powinieneś użyć jakiegoś narzędzia do formatowania kodu, aby wykonać całą operację lub przynajmniej znaleźć i zastąpić wyrażeniami regularnymi. Coś tak prostego, jak zastąpienie tego, co pasuje ^____
(Użyj 4 spacji zamiast podkreślników) __
(2 spacje), powtórzone kilka razy (chyba że masz obłędnie zagnieżdżony kod) powinno zadziałać.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-03 04:23:20
BTW: jeśli tylko odwrócisz scalenie, które zrobiłeś, a 3 nie jest Twoim numerem rewizji, możesz to zrobić:
hg update -C -r .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-01 11:23:11
Aby cofnąć niezakontraktowane połączenie, użyj
hg update --clean
Który wyświetli czystą kopię oryginalnego rodzica scalającego, tracąc wszystkie zmiany.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-27 06:42:48
Najwyraźniej potrzebowałem hg update -C -r 3
, co nadpisuje moje lokalne pliki z myślą o rev (co myślałem hg update
zrobi; ale się myliłem.) Dzięki za pomoc!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-03 04:31:29