2009-05-06 12 views
12

Mercurial es compatible con la clonación de repositorio de repositorios a hosts remotos, sin embargo, los repositorios recientemente clonados no contienen copias de trabajo. ¿Hay alguna opción 'oculta' para hacer una actualización mercurial de llamadas sobre estos repositorios clonados?Clonación de repo mercurial en el host remoto

Aquí es un ejemplo:

1) hg init hola

2) clon hg hola ssh: // somehost/hola

ssh: // somehost/hola sólo contiene directorio .hg y tengo que ejecutar el siguiente comando en la cáscara con el fin de llenar la copia de trabajo:

3) ssh somehost 'cd hola & actualización & hg'

¿Hay alguna forma de evitar el paso 3)?

Respuesta

11

Puede crear un gancho en el lado de recepción. Agregue la siguiente sección a su repositorio/.hg/hgrc

[hooks] 
changegroup = hg update 

Eso debería hacerlo. Tenga en cuenta que los ganchos no están clonados.

+1

Pero si el repositorio se clona en el host remoto, ¿cómo puede contener estas configuraciones en el lado remoto? ;) – pachanga

+2

Esto ayuda cuando más tarde quiere volver a presionar al receptor, sin tener que volver a llamar a la actualización, de nuevo. El procedimiento que describes en la pregunta que realmente tienes que hacer solo una vez, luego es presionar push push. Es donde lo que propongo simplificaría las cosas. Push-and-forget. = P –

5

No hay una opción oculta para forzar una actualización de un repositorio remoto. Sólo una condición determina si se lleva a cabo la actualización (por ejemplo, la línea 239 de hg.py en el 1.0.1 fuente de Mercurial):

if dest_repo.local(): 

Si vas a hacer algún trabajo en la copia de trabajo, que' Vamos a iniciar sesión de todos modos, momento en el que ejecutar "hg update" es bastante fácil, por lo que no hay mucha motivación para relajar la restricción actual en los clones remotos.

-2

tengo el mismo problema, y ​​desafortunadamente no hay una solución simple para evitar el paso 3. mercurial no revisa la copia de trabajo de forma remota como lo hace "git clone", por lo que siempre tendrá este paso adicional al implementar su archivos html por primera vez, por ejemplo.

+0

Instale un gancho en el servidor (una vez): 'changegroup = hg update' en una configuración' [hooks] '. Solo haz esto una vez después de haber hecho el clon inicial. Su repositorio se actualizará automáticamente cuando presione. –

+0

No sé por qué me votan negativamente: la solución preferida es simplemente una solución, ya que todavía tiene que realizar el paso 3 (ssh en el servidor). – tehfink

+0

a quién le importa si debe ssh ** una vez **, el punto no es tener que hacerlo cada vez –

Cuestiones relacionadas