Question

La situation: Je suis nouveau à Mercurial. J'ai récemment l'installation et ont commencé à utiliser un référentiel dans un modèle recommandé me ( voir le diagramme de Rudi ci-dessous). Les choses vont bien, mais j'ai courir dans mon premier problème d'application pratique. Mercurial semble être orienté vers l'avant se confond / mixte et je voudrais sauvegarder. Je veux nettoyer notre défaut et la branche stable en commençant par la branche du fournisseur, re-faire nos changements et vérifier dans par défaut. Puis fusionner cela dans stable.

V1----V2-------------V3---------V4     Vendor
 \     \              \          \
  D1----D2---D3--D4-D5-D6-D7-D8---D9   default
                  \           \    \
                   S1----------S2---S3 stable

La question: Comment puis-je commencer par la branche du fournisseur comme parent, fusionner les modifications par défaut et les engage à la branche par défaut

Je pensais que ce qui suit le ferait, mais la mise à jour modifie le répertoire de travail.

hg update -C vendor
hg update default
hg merge
Était-ce utile?

La solution

Il y a deux façons d'aller cela. Celui de droite et celui de expédient. Je vais faire la bonne première:

hg update default
hg --config ui.merge=internal:other merge vendor

qui met à jour votre parent par défaut et le répertoire de travail par défaut, puis se confond dans le contenu du fournisseur, mais le fait en utilisant un outil de fusion interne toujours prend l'autre option quand il y a une différence, de sorte que vous aurez défaut à la recherche comme fournisseur après la fusion (et commettez).

La façon sournoise est:

hg update -C vendor
hg debugsetparent default
hg commit

debugsetparent est un outil électrique qui fait la partie de la mise à jour « changement parent » sans réellement mettre à jour les fichiers dans le répertoire de travail.

Autres conseils

Bien qu'il manque le cadre de cette question et ses réponses fournit, j'ai trouvé le .

scroll top