Comment résoudre ce conflit Mercurial?
Je suis frustré par Mercurial et Python, car il rend les choses faciles difficile. J'ai un banal conflit et depuis Mercurial ne donne aucune suggestion que faire je ne sais pas encore comment résoudre ce banal conflit de fichier:
Le conflit est trivial, mais si je ne peux pas résoudre ce que je ne peux pas résoudre quoi que ce soit compliqué. Puis-je modifier le fichier d'une façon que je veux et de s'engager de nouveau à partir de n'importe où? Dois-je exécuter hg merge
? Pourquoi ne peut-Mercurial-même laissez-moi choisir une version pour les garder? Pourquoi est quelque chose de trivial près impossible à faire sans creuser par le biais de 1000 mal écrit les pages de manuel?
source d'informationauteur Niklas Rosencrantz
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de regarder le KDiff3 documentationen particulier la section sur les la fusion et la fenêtre de sortie. Pour résoudre le conflit, vous devez décider si
live
oujanuary
est le bon choix pour la ligne. Cette décision est la vôtre à faire, aucun outil ne peut savoir si tu voulais parler de l'un ou de l'autre.Dans KDiff3, vous appuyez sur la touche Ctrl + 2 pour sélectionner
live
appuyez sur Ctrl + 3 pour sélectionnerjanuary
ou cliquez à droite dans la marge du bas de la fenêtre et sélectionnez la ligne que vous souhaitez. Vous pouvez également cliquer dans la fenêtre du bas et modifier la ligne manuellement.Mercurial laissez vous configurer l'outil de fusion manière dont vous le souhaitez. TortoiseHg est livré avec une configuration par défaut qui met KDiff3 dans le haut de la liste, mais vous pouvez utiliser un autre outil si vous le souhaitez. Un outil de fusion est vraiment juste un programme qui accepte les quatre noms de fichiers: les trois fichiers à comparer (de base, le parent 1, parent 2) et un nom de fichier de sortie.
Pour résoudre les conflits sur la ligne de commande vous avez besoin de lancer un adapté de ligne de commande à trois voies de l'outil de fusion. Vous pouvez par exemple fusionner avec vim si vous le souhaitez. (Je crains que je ne sais rien à propos de vimdiff, j'utilise KDiff3 moi-même.)
Si vous ne voulez pas voir la fusion des outils de pop-up, puis vous pouvez définir
pour rendre Mercurial utilisation interne fusion. Il va fusionner les fichiers d'amende lorsque les modifications ne sont pas dans les conflits. Quand il ya un conflit, le fichier est marqué comme "non résolus" et marqueurs de conflit sont stockés dans le fichier.
Ensuite, vous devez modifier le fichier à la main pour obtenir la version que vous voulez. Vous pouvez également re-fusionner et de choisir soit le local (votre) version:
ou l'autre version:
Vous redémarrez l'fusionner totalement avec
hg resolve your-file
. Le fichier doit être marqué "résolu" avant que vous pouvez commettre. C'est fait avechg resolve --mark your-file
. Voirhg resolve --list
pour l'état de la fusion.De Base est la version précédente de votre système local,
Parent 1 est vos modifications en cours,
parent 2 est le fichier à partir du serveur.
Si vous avez besoin de vos modifications doivent être enregistrés, sélectionnez B partout dans le menu fusion.
Si vous voulez la dernière version du serveur de votre machine locale, sélectionnez C partout dans le menu fusion