Tutorial - risolvere i conflitti tra modifiche

Abbiamo così imparato come effettuare un semplice merge in TutorialEffettuareMerge.

Mercurial gestisce anche casi più complessi. Non è strano che due persone modifichino esattamente le stesse linee di un file; in questo caso bisogna sapere cosa fare. Questi casi sono chiamati conflitti; il primo passo per risolverli è immaginarsi come accadano.

Creiamo una situazione artificiale di conflitto. Come fatto in precedenza, iniziamo clonanod my-hello:

==code==

Ora aggiungiamo una nuova linea di output a hello.c:

==code==

Cambiamo così il main:

==codeC==

Inseguito commentiamo la modifica:

==code==

Facciamo riferimento a TutorialPrimaModifica e creiamo un changeset in my-hello-new-output al quale è aggiunta già una seconda linea di output Che succede quando proviamo a eseguire l pull?

==code==

Eseguiamo l'update.

==code==

cfr. anche Branch

Come in TutorialEffettuareMerge, dobbiamo lanciare hg merge. Come prima, il programma di merge si eseguirà automaticamente.

Qui sotto ecco l'esempio del messaggio che mostra il conflitto in vim sotto Linux.

==code==

Mercurial usa un merg a 3 vie per ogni file. Questo vuol dire che ci sono tre file di input per ogni processo di unificazione( merge ). Si tratta di:

Per più informazioni riguardo alle 3 vie controllare ThreeWayMerge su Revctrl wiki.