J'ai un conflit de fusion, en utilisant Mercurial 1.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
Je ne peux pas comprendre comment résoudre ce problème. Les résultats de recherche Google indiquent d'utiliser:
hg resolve
mais pour une raison quelconque, mon Mercurial (v1.0.2) n'a pas de commande de résolution:
hg: unknown command 'resolve'
Comment puis-je résoudre ce conflit?
Valable pour hg <v1.1 uniquement
Il n'est pas nécessaire d'appeler les commandes hg
. Contrairement à svn
, Mercurial ne suit pas les fichiers en conflit. Si vous appelez hg status
, vous verrez que le fichier est simplement marqué comme modifié.
Corrigez simplement le fichier à la main et validez.
Pour mettre en évidence une réponse dans un commentaire pour Hg 1.1 +:
Pour Hg 1.1 + réparer le fichier à la main puis faire
hg resolve -m test.h
pour marquer le fichier comme fusionné.
Le suivi des conflits a été introduit dans Mercurial 1.1 , qui est une version plus récente que vous utilisez (vous devriez vraiment mettre à niveau, Mercurial 1.1. A été publié en décembre 2008). Dans cette version, vous avez obtenu la commande resolve
qui fonctionne de manière similaire à svn resolve
.
Si je me souviens bien, Mercurial laisserait des marqueurs de fusion (le <<<<
et >>>>
lignes) dans votre fichier en cas de conflit, sauf si vous avez configuré un outil de fusion . Cela s'applique également aux versions plus récentes - je n'ai aucun outil de fusion configuré et j'obtiens les marqueurs de fusion lorsque des conflits se produisent. Je peux ensuite corriger manuellement le fichier et le marquer comme résolu avec hg resolve
.