2009-04-28 18 views
33

Mam łączących się konflikt, używając Mercurial 1.0.2:Jak rozwiązać konflikty łączące w Mercurial (v1.0.2)?

merging test.h 
warning: conflicts during merge. 
merging test.h failed! 
6 files updated, 0 files merged, 0 files removed, 1 files unresolved 
There are unresolved merges, you can redo the full merge using: 
    hg update -C 19 
    hg merge 18 

nie mogę dowiedzieć się, jak rozwiązać ten problem. Wyniki wyszukiwania Google instruować używać:

hg resolve 

ale z jakiegoś powodu moja Mercurial (v1.0.2) nie ma polecenia resolve:

hg: unknown command 'resolve' 

Jak mogę rozwiązać ten konflikt?

+0

Myślę, że musisz zaznaczyć inną odpowiedź jako właściwą .. – Lipis

Odpowiedz

13

Ważny dla hg < v1.1 tylko

Nie ma potrzeby, aby wywołać jakiekolwiek hg poleceń. W przeciwieństwie do svn, Mercurial nie śledzi konfliktowych plików. Jeśli zadzwonisz pod numer hg status, zobaczysz, że plik jest po prostu oznaczony jako zmodyfikowany.

Po prostu popraw plik ręcznie i zatwierdz.

+0

Wygląda na to, że Mercurial przeniósł moją lokalną kopię do test.h.orig, a test.h jest teraz z drugiej głowy ... czy jest jakiś sposób, aby zapobiec tworzeniu pliku .orig, aby nie został dodany przypadkowo? – lajos

+0

Nie jestem pewien, czy to możliwe, ale możesz dodać * .orig do pliku .hgignore. – avakar

+16

Jeśli po prostu wyedytujesz plik, a następnie zatwierdzisz, możliwe, że nie zostanie on rozpoznany jako scalenie dwóch gałęzi, to po prostu nowy commit na twoim roboczym. Myślę, że trzeba ręcznie naprawić plik, a następnie wykonać ** hg resolve -m test.h **, aby oznaczyć plik jako scalony. –

10

Śledzenie konfliktów wprowadzono w Mercurial 1.1, która jest nowszą wersją, której używasz (naprawdę powinieneś uaktualnić, Mercurial 1.1 został wydany w grudniu 2008). W tej wersji uzyskałeś polecenie resolve, które działa podobnie do svn resolve.

Jak pamiętam, Mercurial zostawia w twoim pliku znaczniki połączenia (linie <<<< i >>>>) w przypadku konfliktu, chyba że skonfigurowano merge tool. Dotyczy to również nowszych wersji - nie mam skonfigurowanego narzędzia do scalania i otrzymuję znaczniki połączenia w przypadku wystąpienia konfliktów. Następnie mogę ręcznie naprawić plik i oznaczyć go jako rozwiązany za pomocą hg resolve.

75

Aby zaznaczyć odpowiedź w komentarzu dla Hg 1.1+:

Dla Hg 1.1+ naprawić plik ręcznie, a następnie zrobić

hg resolve -m test.h 

oznaczyć plik jako połączone.

+0

Czy muszę ręcznie usuwać pliki .orig? –

+0

to samo pytanie. Co robić z plikami .orig? –

+1

Właśnie usuwam je ręcznie –

Powiązane problemy