web-dev-qa-db-fra.com

hg: comment repousser la branche nouvellement créée dans le référentiel central?

J'ai cloné le référentiel central via

hg clone my_project my_project_1

puis après être passé à un repo nouvellement créé, je l'ai marqué comme une nouvelle branche

hg branch v1

A l'intérieur du nouveau clone que j'ai publié

hg ci -m "branch created"

mais lorsque j'ai essayé de repousser les modifications vers le référentiel d'origine à partir duquel j'ai cloné, j'ai obtenu cette erreur:

abort: Push creates new remote branches: v1!

Comment puis-je pousser la branche dans le référentiel d'origine? Suis-je en train de faire la bonne chose en essayant de pousser la branche dans le référentiel d'origine? Je veux juste avoir un référentiel centralisé qui contiendrait des branches et à partir duquel je pourrais vérifier les branches. Quelle est la meilleure façon de résoudre ce problème? Je vous remercie.

29
Alex Khvatov

Cela dépend de la version de Mercurial que vous utilisez. La commande était hg Push -f ... ou hg Push --force ... pour forcer la création d'une nouvelle branche dans le référentiel distant (ce qui est généralement OK).

Cependant, en utilisant -f vous permet également de créer de nouvelles têtes dans le référentiel distant (généralement pas OK), donc les versions actuelles de Mercurial (1.6 et supérieures) ont un --new-branch option pour hg Push qui vous permet de créer une branche, mais pas de créer une nouvelle tête, donc la commande est:

hg Push --new-branch

Vous pouvez également limiter les pushs à la branche sur laquelle vous travaillez avec le -b flag, donc:

hg Push --new-branch -b v1
61
Niall C.