2009-07-20 16 views

Respuesta

57
hg update -r<REV> 

El comando update cambiará a una revisión especificado.

+20

Sólo una nota: si se utilizan named (interno) ramas, puede cambiar al nombre de la sucursal con -r también: 'hg update -r ' – quark

+2

Creo que esto necesita ser hg update -C , no -r. Como dice @Danmar en su respuesta, las ramas hg y los comandos de rama hg también son útiles. – andybuckley

+0

Error de principiante, asegúrese de haber hecho primero hg pull (para que tenga la rama local para cambiar) –

33

El comando de cambio hace dos cosas en Subversion:

  1. Actualizar una copia local del trabajo para reflejar una nueva URL en el repositorio. Este comportamiento es similar a 'svn update', y es la forma de mover una copia de trabajo a una rama o etiqueta dentro del mismo repositorio.

  2. Reescribe los metadatos de la URL de copia de trabajo para reflejar solo un cambio sintáctico. Esto se usa cuando los cambios de URL raíz del repositorio (como un esquema o cambio de nombre de host) pero su copia de trabajo aún refleja el mismo directorio dentro del mismo repositorio.

El comando hg update foo coincide con el anterior más estrechamente si se cambia de, digamos, /trunk a /branches/foo en Subversion.

Si desea hacer esto último, simplemente edite .hg/hgrc. Encontrará una sección de [paths] que tiene este aspecto:

 
[paths] 
default = http://example.net/something 

y puede cambiar este comando predeterminado/pull URL a otra cosa como mejor le parezca. También puede agregar otras entradas a esta sección si a menudo necesita presionar/jalar desde otras ubicaciones. Si desea extraer de una ubicación, pero presione otra, agregue una entrada default-push.

0

Respuesta alternativa, en caso de "rama" quiere decir "otro clon del repositorio que vive en una ubicación arbitraria en la red": no puede.

En otras palabras, dada una cesión temporal en hg.a.com, y un clon de ese hg.b.com repo, no hay ningún comando como

hg switch hg.b.com . 

(usando el lenguaje SVN allí, suponiendo que su el directorio actual es la raíz de un clon de hg.a.com).

Sin embargo, puede clonar hg.a.com, clonar localmente ese clon (que debería ser relativamente económico), y luego extraer de hg.b.com para recoger cualquier cambio adicional que pueda existir allí.

+0

Me resulta más fácil agregar otra ruta a la sección '[paths]' en '.hg/hgrc' archivo, o simplemente cambie la ruta predeterminada que figura allí. Ver 'hg help paths' para más información. –

23

que desea cambiar ramas, haga lo siguiente:

En primer lugar comprobar qué servicios están disponibles ramas, tipo hg branches. Esto mostrará una lista de todas las ramas disponibles.

A continuación determine en qué rama está trabajando actualmente, escriba hg branch. Esto te dirá cuál es tu rama actual.Para cambiar una rama (y borrar todos los cambios locales), escriba hg update -C name-of-branch. Esto lo cambiará al nombre de la sucursal que especificó.

Verificar escribiendo hg branch nuevamente.

+2

Nota: incluso si excluye la opción -C clean, cualquier cambio local no confirmado se eliminará al hacer esto. Si desea mantener los cambios no confirmados, déjelos en primer lugar: o) –

1

Para cambiar a 'punta' una rama remota:

hg pull -u <remote_branch> 

Por rama local (ya hasta a la fecha) simplemente:

hg update -r <local_branch> 
Cuestiones relacionadas