2010-08-02 7 views
26

Je clonée le dépôt centeral viahg: comment réinsérer une branche nouvellement créée dans un référentiel central?

hg clone my_project my_project_1 

puis après le passage à une prise en pension nouvellement créé I Marqué comme une nouvelle branche

hg branch v1 

Alors que l'intérieur du nouveau clone I a délivré

hg ci -m "branch created" 

mais quand j'ai essayé de repasser les changements dans le référentiel d'origine, j'ai cloné de J'ai eu cette erreur:

abort: push creates new remote branches: v1! 

Comment puis-je pousser la branche dans le référentiel d'origine? Est-ce que je fais la bonne chose en essayant de pousser la branche dans le repo original? Je veux juste avoir un dépôt 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? Merci.

+0

Avec le contrôle de version distribuée, vous (normalement) vérifiez tout, pas seulement une branche. Aussi: "un référentiel centralisé" est possible mais chaque développeur vérifiant le référentiel dispose d'un clone du référentiel central. –

Répondre

52

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 dépôt distant (ce qui est généralement OK).

Cependant, l'utilisation -f vous permet également de créer de nouvelles têtes dans le dépôt distant (généralement pas OK), de sorte que les versions actuelles de Mercurial (1.6 et plus) ont une option --new-branch-hg push qui vous permet de créer une branche , mais pas créer une nouvelle tête, de sorte que la commande est:

hg push --new-branch 

vous pouvez également limiter tout pousse à la branche que vous travaillez avec le drapeau -b, donc:

hg push --new-branch -b v1 
+2

Il semble que contrairement à git, vous devez créer un commit pour pouvoir pousser: 'hg ci -m" Créer une branche "' – NoBugs

+0

@NoBugs Dans la question, le PO a dit qu'ils l'ont déjà fait. –