2017-08-02 4 views
0

J'ai fait des changements dans la branche par défaut et créé un correctif. Ensuite, j'ai créé ma propre branche par défaut. J'ai exporté le patch par défaut et l'ai importé dans ma propre branche. Tout en poussant les changements de ma branche en utilisant l'outil tortoise hg dans ubuntu, il ne montre que les changements que j'ai importés par défaut. Mais quand j'ai poussé les changements de ma branche, tous les brouillons dans la branche par défaut sont également poussés. Pourquoi c'est si?Pourquoi faut-il supprimer les changements de la branche par défaut tout en poussant les changements d'une autre branche

Seuls les brouillons ayant le même parent que le hachage d'où j'ai créé ma branche sont poussés.

par exemple disons, j'ai le changement public A par défaut. J'ai créé mon brouillon B sur A par défaut Ensuite, j'ai créé mon brouillon C sur A par défaut. Les deux moyens C et B ont tous deux A comme parent. J'ai extrait le dernier code par défaut. Maintenant, D est le dernier public. J'ai créé ma branche à partir de D et également re-basé B sur D. Puis exporté B. et importé dans ma branche. J'ai poussé B de ma branche. En le poussant, il ne me montre qu'un seul brouillon.

Problème est le brouillon en C par défaut est également poussé.

S'il vous plaît aidez-moi sur ce

Logs

+1

Veuillez ajouter l'exemple de la sortie log -G (y compris les informations de phase) de ce dont vous parlez ... cela rendrait BEAUCOUP plus facile à suivre – planetmaker

+0

I avoir attaché l'image à la question –

Répondre

0

En Mercurial, lorsque vous poussez, vous par défaut pousser la structure complète de l'arborescence du référentiel. Si cela crée une nouvelle tête dans une branche sur le référentiel distant, Mercurial annulera le push, sauf si hg push --force est spécifié. (Il est recommandé de ne pas forcer la poussée sans une bonne raison, parce que plusieurs têtes sur une branche entraînera probablement une confusion.)

Si vous avez TortoiseHg, vous pouvez afficher les révisions dans le projet de l'Etat en tapant draft() dans la boîte de filtre et en appuyant sur ENTRÉE. (Si vous n'en voyez pas, cliquez sur l'icône "Filter".) À partir de la ligne de commande, vous pouvez afficher la même chose en utilisant la commande hg log --rev draft(). Pour pousser une révision spécifique et ses descendants, vous pouvez utiliser la commande hg push --rev RevisionNumberOrHash (telle que hg push --rev 123). Alternativement, vous pouvez marquer la révision non désirée comme secrète. Pour ce faire, utilisez la commande hg phase --rev RevisionNumberOrHash --secret --force; dans TortoiseHg, faites un clic droit sur la révision et sélectionnez "Changer la phase vers" -> "Secret". Les révisions secrètes ne seront pas activées à moins que vous ne les sélectionniez spécifiquement pour pousser, ou à moins que vous ne les remettiez à l'état de brouillon. (Important: si une révision est secrète, tous ses descendants le sont aussi.)