Comment fusionner dans mercurial par TortoiseHG?
J'ai deux machines, fenêtre 7 avec TortoiseHG 2.6 et Linux avec TortoiseHG 1.5. J'utilise bitbucket comme un site web pour tenir mon référentiel centralisé. La fenêtre de la machine associe avec bitbucket compte d'utilisateur, Cassie-gagnant et la machine linux associés avec bitbucket compte d'utilisateur, Cassie-linux. Voici les étapes que j'ai effectuées.
- créé un vide référentiel centralisé à butbucket Cassie-linux compte
- créer deux fichiers en local, file1.txt et file2.txt sur les machines linux et les pousser à l'Cassie-linux compte.
- Ajouter un utilisateur Cassie-gagnant pour le référentiel
- Cloner le dépôt de la fenêtre de la machine, faire des changements sur file2.txt il y et de le pousser à revenir à l'référentiel centralisé.
- Pendant ce temps, faire quelques modifications sur le file2.txt ce qui est sur la machine linux et de s'engager localement
- Puis-je extraire les modifications du référentiel centralisé à Cassie-linux compte à mon local de la machine linux. Maintenant, mon linux référentiel local à deux têtes en raison de différents contenus dans file2.txt et je voudrais les fusionner ensemble.
J'ai utilisé l'option "fusionner avec" l'outil de TortoiseHG sur ma machine linux pour fusionner ces deux têtes. Cependant, gardé de ne pas le faire. J'ai essayé comme un des centaines de fois et je ne savais pas où je l'ai eu tort. Les deux fichier1 et fichier2 sont des fichiers de test qui n'ont que trois lignes. J'ai aussi utilisé une commande "hg résoudre file2.txt" pour vérifier l'erreur. Toutefois, il n'a montré que mergeing échoue et n'a pas montré beaucoup d'informations. Personne ne sait comment les utiliser TortoiseHG outil de fusion pour fusionner deux têtes ? Et quel pourrait être le problème pour arrêter de TortoiseHG la fusion de deux têtes ?
J'ai incorporé la capture d'écran que j'ai pris sur la machine Linux qui a TortoiseHg 1.5.
J'ai cliqué avec le bouton droit de la "de Cassie-victoire compte" et il a "fusionner avec" option. Ensuite, j'ai cliqué sur le "fusionner" avec option "fusionner" outil, mais il a échoué avec les messages d'erreur comme ci-dessous.
Merci beaucoup,
- votre distribution Linux est ...
Vous devez vous connecter pour publier un commentaire.
Par "fusionner avec" dans TortoiseHg, voulez-vous dire vous avez essayé de "Fusionner avec Locales" dans le menu contextuel de la tête après la mise à jour de votre répertoire de travail à l'autre de la tête? Si oui, vous devriez avoir vu un assistant vous emmène à travers les étapes d'une fusion. TortoiseHg attendent que vous pour intervenir si l'on ne peut pas fusionner automatiquement les deux chefs. Une fois qu'il vous demande de le faire, vous avez quelques options, y compris "Mercurial Résoudre" et "Outil de Résoudre."
Si vous pouviez poster plus de détails sur les erreurs que vous voyez lorsque la fusion "ne," nous pourrions être en mesure d'être plus utile.
Tout d'abord: Une fusion crée une nouvelle version de fichier. Vous devez les valider avant qu'il ne puisse être vu ou transférées à d'autres pensions de clones.
Maintenant, si vous êtes en train de faire une fusion, et que la même ligne, ou les lignes adjacentes, ont été modifiées dans les deux fusionner les parents, la fonction de fusion et de ne pas réussir et il vous sera demandé de choisir quoi faire à chacun des points de conflits.
Kdiff3
, l'outil qui TortoiseHG utilise pour fusionner les fichiers sur Windows n'est pas très intuitive, donc voici un aperçu:Si il y a plusieurs fichiers à fusionner, vous verrez un répertoire de contrôle. Accédez à l'un des fichiers et ouvrez-le pour voir les deux versions de fichiers côte à côte.
Selon les circonstances, vous pouvez maintenant activer la fonction "Fusionner ce fichier" (dans le menu Fusion et sur la barre d'outils), qui vous montrera une troisième version du fichier (le résultat de la fusion) ci-dessous les deux autres.
Vous pouvez maintenant naviguer de changer pour changer, et cliquez sur le
A
etB
boutons pour sélectionner modifier pour utiliser. Notez que les boutons sont bascule, et il est possible d'activer les deux ensemble (pour importer les deux versions de la fusion). Notez également que vous verrez aussi diff que pourrait être automatiquement fusionnés. En général, vous pouvez les laisser seuls (il y a des boutons de navigation pour aller directement à la prochaine en suspens diff).Une fois que vous avez compris comment fonctionne tout cela, et choisi une version pour chaque diff, vous serez en mesure d'enregistrer et passer au fichier suivant. Lorsque vous avez terminé, votre fusion est prêt à s'engager.
Edit:
Si vous avez besoin pour faire de ce côté Linux, et vous avez pas
Kdiff3
. Ok, alors le faire à l'ancienne: à l'Aide de la ligne de commande, et un éditeur.Lorsqu'une fusion échoue, le fichier en conflit se transforme en un contexte diff qui comprend à la fois des révisions. L'ouvrir avec votre éditeur de texte favori, regarder attentivement et de le nettoyer à chaque contexte diff de la région (vous saurez quand vous les voyez) jusqu'à ce que vous avoir un propre et utilisable fichier comme vous le souhaitez.
Sortie, baisse à la ligne de commande et tapez
hg resolve -m file2.txt
. Cela supprime le fichier de la liste des conflits.Lorsque vous avez fait cela avec tous les fichiers en conflit (vous pouvez en faire la liste avec
hg resolve -l
), vous serez autorisé à engager, et vos ennuis sont terminés.PS. Si vous n'aimez pas la fusion des outils que vous avez, envisagez l'installation de kdiff3 (c'est disponible pour linux, mais aucune idée de comment cela fonctionne bien), ou
p4merge
comme @LazyBadger suggère.Notes
hg serve
sur les deux hôtes ethg pull <PARTY>
sur le côté opposéÀ la question de fusions
Quand (en tout SCM) vous essayez de fusionner deux divergé lignes de codage, il y a deux cas possibles
Dans votre situation, de toute évidence, il deuxième cas: certaines chaînes de 3 en fusion-sources est en conflit et que vous n'avez pas configuré dans TortoiseHG Diff/Merge outils (
TortoiseHG
-Global Setting
-TortoiseHG
)Ont et ajouter ces outils seront le meilleur choix pour l'avenir. Vous avez maintenant en main éditer le fichier en conflit et sélectionnez les bonnes données dans le conflit lignes, marque de conflit résolu (vérifier TortoiseHG menu contextuel de fichier), supprimer temp-files et, enfin, commit de fusion