Question

Je travaille sur un projet où j'ai un commettras qui a introduit une fonctionnalité avec des problèmes majeurs qui ne sont pas immédiatement découverts. Maintenant, je veux supprimer complètement cette révision tout en gardant les travaux suivants, mais je vais avoir du mal à envelopper ma tête autour de cette fusion à 3 voies. Voici un graphique simplifié de mon projet.

o  changeset:   134:7f81764aa03a
|  tag:         tip
|  parent:      128:451d8a19edea
|  summary:     Backed out changeset 451d8a19edea
|
| @  changeset:   133:5eefa40e2a29
| |  summary:     (Change I need to keep keep)
| |
*snip 3 commits*
| o  changeset:   129:5f6182a97d40
|/   summary:     (Change I need to keep keep)
|
o  changeset:   128:451d8a19edea
|  summary:     (Change that introduced a major problem)
|
o  changeset:   127:4f26dc55455d
|  summary:     (summary doesn't matter for this question)

Si je comprends bien, R127 et R134 sont exactement les mêmes. Quand je hg up -C -r 133 puis exécutez hg merge, Meld apparaît avec trois formes de l'un de mes fichiers: local, base et autres. locale semble être R133, mais je suis un moment difficile envelopper ma tête autour de ce que la « base » et « autre » moyen.

Était-ce utile?

La solution

Local est-R133

Autre est-R134

base est r128 (l'ancêtre commun à la fois R133 et R 134)

Lorsque vous effectuez une fusion de 3 façon dont il compare les trois personnes ensemble pour vous aider à décider ce qu'il faut prendre et d'où. En voyant ce changement est dans l'autre révision et ce que l'ancêtre commun ressemblait vous êtes en mesure de prendre une décision beaucoup plus informés sur ce qu'il faut garder et ce qu'il faut changer.

Autres conseils

Votre question est vraiment déroutant, mais voici quelques informations qui peuvent vous aider.

  • Quelle est la base?

La base est la version non modifiée de la révision que vous avez actuellement vérifié et travaillé. où peut-être d'autres changements ont généré le (vous pouvez avoir des révisions entre votre région et de la base actuelle!). sa juste où la révision la plus proche où aucune autre fourche a détourné de la suite (même parent) (dans votre cas R128)

  • Quelle est la tête?

Head est la dernière révision dans le contrôle de version. si vous travaillez seul sur une seule copie, il sera probablement base. mais un travailleur de co aurait modifié le même fichier et vérifié dans le contrôle de version, puis la tête est postérieure à votre base.

  • Qu'est-ce que local?

Local est votre version modifiée (dans votre cas R133)

  • Qu'est-ce que d'autres?

Autre est la fourchette une / branche qui a également votre base en tant que parent (dans votre cas R134)

  • Comment fonctionne la fusion 3 voies?

3 fusion de fonctionnement de (au moins en meld) hiérarchiquement. généralement de gauche à droite comme ceci:

base locale>> autre / head

base locale de / est le plus souvent trivial parce que sa juste ce que vous avez modifié

vous pouvez alors fusionner vos modifications dans la révision de la tête ou celle de votre travailleur de co ou autre.

Il peut y avoir plusieurs autres révisions / tête, mais ce n'est pas votre travail de fusion et donc plus de 3 façon de comparer n'a pas de sens.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top