2010-08-02 9 views
26

I clonado el repositorio centeral travéshg: ¿cómo puedo volver a insertar la rama recién creada en el repositorio central?

hg clone my_project my_project_1 

continuación, después de cambiar a un acuerdo de recompra de nueva creación marqué como una nueva rama

hg branch v1 

Mientras que en el interior del nuevo clon emití

hg ci -m "branch created" 

pero cuando traté de volver a enviar los cambios al repositorio original que cloné de , recibí este error:

abort: push creates new remote branches: v1! 

¿Cómo envío la rama al repositorio original? ¿Estoy haciendo lo correcto al intentar insertar la rama en el repositorio original? Solo quiero tener un repositorio centralizado que contenga sucursales y desde el cual pueda verificar las sucursales. ¿Cuál es la mejor manera de lidiar con este problema? Gracias.

+0

Con el control de versión distribuida, usted (normalmente) echa un vistazo a todo, no solo a una sucursal. Además, "un repositorio centralizado" es posible, pero cada desarrollador que revisa el repositorio tiene un clon del repositorio central. –

Respuesta

52

Depende de la versión de Mercurial que esté utilizando. El comando solía ser hg push -f ... o hg push --force ... para forzar la creación de una nueva sucursal en el repositorio remoto (que generalmente es correcto).

Sin embargo, el uso de -f también le permite crear nuevas cabezas en el repositorio remoto (por lo general no OK), por lo que las versiones actuales de Mercurial (1.6 y superiores) tienen una opción --new-branch a hg push que le permite crear una rama , pero no crear una nueva cabeza, por lo que el comando es:

hg push --new-branch 

también puede limitar simplemente empuja a la rama que se está trabajando con la bandera -b, por lo que:

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

Parece que a diferencia de git, debe crear un compromiso para poder presionar: 'hg ci -m" Crear una rama "' – NoBugs

+0

@NoBugs En la pregunta, el OP dijo que ya lo hicieron. –

Cuestiones relacionadas