web-dev-qa-db-fra.com

Créer une nouvelle succursale dans Mercurial: "Abandonnez: Push crée une nouvelle tête distante"

J'essaie de faire quelque chose de très simple: créer une nouvelle branche. Mais j'ai foiré. Où ai-je commis l'erreur et comment puis-je le réparer?

Je suis le seul utilisateur de Mercurial. J'ai eu la révision 54 engagée et poussée à un référentiel à distance. Je voulais créer une succursale basée sur la révision 53, j'ai donc mis à jour ma copie locale à la révision 53, apporté des modifications et commises (ignorant l'avertissement sur "Ce n'est pas la tête"). Ensuite, quand j'essaie d'appuyer sur le référentiel à distance, il dit

abort: Push creates new remote head

Peut-être que j'avais besoin de dire mercurial que je souhaite créer une nouvelle branche? Si oui, comment et à quel moment?

Merci!

28
max

Vous dites mercurial que cela puisse aller de l'avant avec

$ hg Push --force

Vous devez le forcer puisque plusieurs têtes (Sans nom) sont normalement découragées. Le problème avec eux est que les personnes qui clonerent le référentiel ne sauront pas savoir lequel utiliser. Mais puisque vous êtes le seul utilisateur, vous pouvez simplement aller de l'avant et pousser.

L'alternative consiste à utiliser une branche nommée (avec hg branch) et ensuite vous utiliserez

$ hg Push --new-branch

permettre la création d'une nouvelle branche sur la télécommande. Les branches nommées ont l'avantage de faciliter la distinction des deux branches. Ils ont l'inconvénient qu'ils sont permanents. Un moyen permanent que vous ne pouvez pas supprimer le nom de la succursale des modifications apportées sur la branche - le nom est littéralement cuite directement dans la modification.

Signets Fournissez un moyen de disposer de noms de branche non permanents, voir hg help bookmarks.

36
Martin Geisler

Une autre raison de cette erreur: il existe probablement des modifications non méritées forment le repo central dans votre branche par défaut.

hg up default
hg merge
hg ci -m "Merge"
hg pus
1
Alex

J'ai fait ça. Utiliser TortoiseHG ... C'est comme ça que je l'ai réparé:

Dans les paramètres, j'ai activé l'extension de la bande, puis clique à droite sur la branche que je ne voulais pas, la bande d'histoire modifiée. Si vous avez poussé, alors il doit être dépouillé de tous les autres référentiels, y compris des workmates qui ont tiré votre branche indésirable.

Une alternative consiste à fusionner la branche indésirable dans votre branche principale, mais ne prenez aucune des modifications de cette branche - je ne sais pas comment ce mécanisme fonctionne.

0
Ruskin