Jak rozwiązać ten Merkurialny konflikt?

Jestem sfrustrowany Mercurialem i Pythonem, ponieważ utrudnia to łatwe rzeczy. Mam trywialny konflikt i ponieważ Mercurial nie daje żadnych sugestii co zrobić, Nie wiem nawet jak rozwiązać ten trywialny konflikt Plików:

KDiff3

Konflikt jest banalny, ale jeśli nie mogę rozwiązać tego, nie mogę rozwiązać niczego skomplikowanego. Czy mogę po prostu edytować plik w dowolny sposób I zatwierdzić go ponownie z dowolnego miejsca? Mam uciekać hg merge? Dlaczego Mercurial nie pozwala mi wybrać Wersja do zachowania? Dlaczego coś trywialnego jest prawie niemożliwe do zrobienia bez przekopania się przez 1000 źle napisanych stron manpages?

Author: Martin Geisler, 2012-01-25

2 answers

Należy zapoznać się z dokumentacją KDiff3, w szczególności z sekcją scalania i oknem wyjścia. Aby rozwiązać konflikt, musisz zdecydować, czy live lub january jest właściwym wyborem dla danej linii. Ta decyzja należy do Ciebie, żadne narzędzie nie może wiedzieć, czy miałeś na myśli jedno czy drugie.

W KDiff3 naciskasz Ctrl + 2 aby wybrać live, Naciśnij Ctrl + 3 aby wybrać january lub kliknąć prawym przyciskiem myszy na marginesie u dołu okno i wybierz żądaną linię. Możesz również kliknąć w dolnym oknie i ręcznie edytować wiersz.

Mercurial pozwól sobie skonfigurować swoje narzędzie scalania W DOWOLNY SPOSÓB. TortoiseHg jest dostarczany z domyślną konfiguracją, która umieszcza KDiff3 na górze listy, ale możesz użyć innego narzędzia, jeśli chcesz. Narzędzie scalania jest tak naprawdę tylko programem, który akceptuje cztery nazwy plików: trzy pliki do porównania (base, parent 1, parent 2) i nazwę pliku wyjściowego.

Aby rozwiązać konflikty w wierszu poleceń musisz uruchomić odpowiednie narzędzie do łączenia trójdrożnego wiersza poleceń. Możesz na przykład połączyć się z Vimem , jeśli chcesz. (Obawiam się, że nic nie wiem o vimdiffie, sam używam KDiff3.)

Jeśli nie chcesz widzieć wyskakujących narzędzi scalających, możesz ustawić

[ui]
merge = internal:merge

Aby Mercurial używać tylko wewnętrznego połączenia trójstronnego. Będzie scalić pliki dobrze, gdy zmiany nie są w konfliktach. W przypadku wystąpienia konfliktu plik jest oznaczony jako znaczniki" nierozwiązane " i konfliktu są przechowywane w pliku.

Następnie musisz ręcznie edytować plik, aby uzyskać żądaną wersję. Można również ponownie scalić i wybrać albo lokalną (twoją) wersję:

$ hg resolve --tool internal:local your-file

Lub inna wersja:

$ hg resolve --tool internal:other your-file

Restartujesz połączenie całkowicie za pomocą hg resolve your-file. Plik musi być oznaczony jako "rozwiązany", zanim będzie można go zatwierdzić. Odbywa się to za pomocą hg resolve --mark your-file. Zobacz hg resolve --list, aby uzyskać status bieżącego scalania.

 24
Author: Martin Geisler,
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
2018-02-22 10:34:07

Base to poprzednia wersja w Twoim lokalnym systemie, Rodzic 1 to twoje obecne zmiany, parent 2 to plik z serwera.

Jeśli chcesz, aby zmiany były sprawdzane, wybierz B everywhere w menu scalanie. Jeśli chcesz mieć najnowszą wersję serwera na komputerze lokalnym, wybierz C everywhere w menu scalanie

 20
Author: FreeBird,
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
2012-05-30 08:44:53