2012-04-11 31 views
5

Po przeczytaniu Completely manual Mercurial merge, mam taką .hgrc:Mercurial instrukcja seryjnej nie uruchomi meldunku

[ui] 
merge = meld 

[merge-tools] 
meld.priority = 1 
meld.premerge = False 
meld.args = $local $other $base 

[merge-patterns] 
** = meld 

Jednak hg merge -r REV prostu działa i nie mam się o co mi brakuje ...

Chciałbym przeprowadzić ręczne scalanie, aby usunąć niektóre zmiany wprowadzone przez inne oddziały. Druga gałąź ma zestaw zmian wpływający na kilka plików i nie chcę ich modyfikować.

Odpowiedz

5

Mam dwa domysły. Albo twoje ustawienia konfiguracyjne nie zostaną podniesione, albo nie masz wystarczająco dużo konfliktów dla Mercurial, aby rozważyć scalenie wymagające rozwiązania.

Możesz sprawdzić pierwszy z hg showconfig - upewnij się, że widzisz ustawienia połączenia.

Jeśli są wyświetlane, być może nie ma wystarczającego konfliktu między dwoma zestawami zmian, które się łączą. Nawet przy ustawionym premerge na false musi być jeszcze coś, co wymaga scalenia. Czy istnieją rzeczywiste zmiany w tym samym pliku w obu zestawach zmian? Być może spróbuj hg merge --tool internal:fail, a następnie sprawdź hg resolve --list, aby zobaczyć, co tam jest.

+0

OK, ustawienia meldowania są poprawne, ale wygląda na to, że masz rację, ponieważ konflikt jest niewystarczający. Przychodzący zestaw zmian modyfikuje niektóre niezmodyfikowane pliki, myślałem, że byłbym w stanie wywołać ręczne scalanie, aby usunąć niektóre z tych zmian, ale wydaje się to niemożliwe. –

+0

Wypróbuj 'hg merge --tool internal: prompt' lub' hg merge --tool internal: dump'. Nie wiem, czy przerwie to wcześniej, ale jeśli tak, to czy możliwe jest ręczne wywołanie meldunku? –

+0

Dzięki, właściwie rozwiązałem swój problem, przesyłając nadchodzący zestaw zmian w znacznie wcześniejszej wersji mojego projektu. To spowodowało pewne konflikty podczas łączenia, uruchomiło połączenie i miałem możliwość ręcznego wyboru, które zmiany chciałem zachować :) –

0

Podążam za twoją instrukcją użycia MELD podczas robienia porównania. Rozumiem:

hg meld file.F 
usage: 
    meld      Start with no windows open 
    meld <dir>     Start with VC browser in 'dir' 
    meld <file>    Start with VC diff of 'file' 
    meld <file> <file> [file] Start with 2 or 3 way file comparison 
    meld <dir> <dir> [dir] Start with 2 or 3 way directory comparison 

meld: error: no such option: -a 

Skąd bierze się ta opcja?

+0

Witam, powinieneś zadać nowe pytanie na ten temat. Wygląda na to, że rtęć nie ma poprawnego zestawu argumentów. –