49 votes

Pourquoi ne puis-je pas pousser cette modification vers mon dépôt mercuriel "principal" ?

J'essaie de comprendre Mercurial et j'espère que je ne fais que m'embrouiller ici !

J'ai un référentiel ('main') que j'ai cloné ('clone'), tous deux sur ma propre machine. Les deux étaient complètement synchronisés l'un avec l'autre.

J'ai décidé de jouer avec les branches nommées et la prochaine fois que j'ai fait un commit sur mon 'clone', je l'ai fait sous le nom de branche 'case1212' et bien que le commit semble avoir été traité correctement sur mon clone, je ne peux pas repousser ces changements sur 'main' :

L'erreur donnée est :

abort: push creates new remote branch 'case1212'!

...et il suggère que je devrais peut-être fusionner d'abord ? Qu'est-ce que je suis censé fusionner sur ce dépôt 'clone' ? Quand j'essaie de tirer de 'main', il n'y a pas de changements.

Je suis presque sûr que je voudrais qu'il crée une branche distante dans mon dépôt 'principal' pour que les personnes qui mettent à jour à partir de ce dépôt puissent voir cette branche.

50voto

Nate Heinrich Points 1396

Le comportement par défaut de Mercurial vous empêche de créer des branches distantes. Si vous voulez le faire, vous devez forcer la création de branches.

Dans le menu Synchroniser de la fenêtre que vous montrez, il y a une option pour forcer la poussée.

24voto

Casebash Points 22106

La tortue a maintenant une option Push new branch qui peuvent être plus sûrs que Force pull or push . L'outil en ligne de commande possède un drapeau --new-branch.

Mise à jour : La nouvelle interface de la tortue le rend un peu plus difficile à trouver. Passez à la vue Synchroniser, puis cliquez sur options et sélectionnez autoriser le push d'une nouvelle branche.

19voto

Ry4an Points 56453

Il vous avertit que votre poussée créerait de nouvelles têtes distantes (et dans ce cas des branches). Si vous êtes d'accord avec cela, et il semble que vous le soyez, vous pouvez pousser avec push -f .

Cette vérification est là pour que, si vous voulez que la branche case1212 ne retourne pas au serveur principal, vous puissiez faire ceci hg push -r default et alors vous ne verriez pas cet avertissement et n'enverriez pas le cas1212.

Une fois que vous avez fait cela pour le cas1212, vous ne verrez plus l'avertissement puisque le cas1212 sera déjà là.

Les nouvelles versions de mercurial rendent cet avertissement un peu moins effrayant dans le cas où la nouvelle tête est une nouvelle branche.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X