web-dev-qa-db-fra.com

Comment résoudre les conflits de fusion dans Mercurial (v1.0.2)?

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?

36
lajos

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.

14
avakar

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é.

80
David Sykes

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.

10
Martin Geisler