Il y a eu plusieurs questions récemment sur la façon d'ignorer les changements lors de l'entretien de la libération des succursales dans d'Mercurial. Par exemple:
- Mercurial: Direction générale de changements spécifiques reviens après factice de fusion
- Pourquoi sont-Mercurial backouts dans une branche qui touchent d'autres branches?
Depuis, elle a été introduite dans la version 2.0, j'ai demandé à ce sujet à l'aide de graft
afin d'éviter ce problème. Compte tenu d'une révision de l'arborescence comme ceci:
A---B---C---D---E---F---G---H---I---J
Supposons que nous avons besoin de créer une branche qui ignore le Mal de changement E
.
hg update -r D
hg graft "F::J"
en nous donnant:
A---B---C---D---E---F---G---H---I---J
\
--F'--G'--H'--I'--J'
- Q1: Ce qui s'est passé ici? Je peux comprendre qu'
transplant
aurait généré des correctifs deF::J
, puis de l'appliquer surD
, maisgraft
est dit d'utiliser les 3 voies de fusion plutôt que des correctifs. Donc....... comment cela fonctionne? Pourquoi est-il mieux?
Disons que j'ai maintenant fixer E
, et le fusionner dans ma branche.
--E2-----------------
/ \
A---B---C---D---E---F---G---H---I---J---M1
\ \
--F'--G'--H'--I'--J'---------M2--
Le M1 est un droit de fusion; rien de spécial. M2 est la fusion de branches qui ont "la même chose" (ou au moins l'équivalent) des changements.
- Q2: Est-ce de fusion juste une normale 3-voie de fusion à l'aide de
D
,J'
etM1
? - Q3: A mercurial stockée ou utilisée extra d'informations sur la greffe de fonctionnement pour l'aider avec la fusion?
Et enfin...
- Q4: Quels sont les problèmes potentiels avec un débit de ce genre?