Czy istnieje sposób na pełne sterowanie ręczne procesem scalania w Mercurial?Całkowicie ręczny Mercurial merge
Chcę mieć możliwość wyboru kierunku scalania plików, nawet w przypadku plików bez konfliktów. Czy to możliwe?
Czy istnieje sposób na pełne sterowanie ręczne procesem scalania w Mercurial?Całkowicie ręczny Mercurial merge
Chcę mieć możliwość wyboru kierunku scalania plików, nawet w przypadku plików bez konfliktów. Czy to możliwe?
Włącz "wstępne scalanie" w konfiguracji scalania. Wtedy wszystko liczy się jako konflikt i możesz wybrać "lewo" lub "prawo" dla każdej zmiany pliku.
[merge-tools]
mymergetool.premerge = False
Scalenie jest zawsze wykonywane między wersją nadrzędną katalogu roboczego a inną wersją, domyślnie drugą głowicą w repozytorium.
Jeśli chcesz połączyć się z innym „w kierunku” można zmienić której oddział znajduje się w katalogu roboczym poprzez sprawdzanie konkretną wersję:
hg update -r [rev]
aby zobaczyć, który stoi na czele masz w repozytorium uruchomić następujące polecenie:
hg heads
Ewentualnie, jeśli używasz fetch
można użyć opcji --switch-parent
scalić w innym kierunku:
hg fetch --switch-parent
Nie można zmienić kierunku scalania dla poszczególnych plików, ponieważ Mercurial współpracuje ze zmianami, które mają wpływ na całe repozytorium, a nie na śledzenie zmian poszczególnych plików, takich jak CVS.
Widzę, że przyjął twoją odpowiedź, ale nie sądzę, że to jest to, o co prosił. Powiedziałeś mu, jak wybierać "lewo" lub "prawo" dla wszystkich nie-konfliktów, ale jeśli chce on mieszać i dopasowywać, musi wyłączyć wewnętrzne "wstępne scalenie" przed uruchomieniem narzędzia do scalania. –
edycji pliku konfiguracyjnego w ten sposób:
[ui]
merge = kdiff3
[merge-tools]
kdiff3.premerge = false
kdiff3.args=--L1 base --L2 local --L3 other $base $local $other -o $output
Domyślnie to stawia --auto
argumentu na KDiff3 tak KDiff3 scala samochodowych.
+1, ponieważ walczę z tym przez pół godziny, a ty jesteś pierwszą osobą, która zaleca usunięcie argumentu '--auto'. Znalezienie go zajęłoby mi całą wieczność (jak już tęskniłem za każdym razem, potrzebowałem ręcznego scalenia). –
W przypadku KDiff3 ważne jest dodanie opcji --qall
(patrz http://kdiff3.sourceforge.net/doc/documentation.html). Nastąpi automatyczne scalenie niektórych konfliktów bez tego klucza (jak "Automatyczne rozwiązywanie prostych konfliktów" z "Scalenie" menu). Tak więc im bardziej właściwa linia poleceń to:
[ui]
merge = kdiff3
[merge-tools]
kdiff3.premerge = False
kdiff3.args=$base $local $other -o $output --L1 base --L2 local --L3 other --qall
Teraz możesz wypróbować 'hg merge --tool internal: prompt' –
Prawdopodobnie pomogłoby to komuś, ponieważ ani powyższy fragment niżej nie pomógł mi. Dodałem opcję "[ui] -> merge = internal: merge" i całkowicie wyłączono narzędzia do rozwiązywania problemów po nieudanym scaleniu. Właściwie to [to] (http://i.stack.imgur.com/WNHq4.png) irytujące narzędzie zaczęło się pojawiać po aktualizacji mojej wersji Mercurial. – ivkremer