2010-12-09 13 views
27

¿Alguien puede aclarar cuál es la diferencia exacta entre actualización y comandos de extracción?¿Cuál es la diferencia entre actualizar y extraer?

Gracias.

+10

Si esto es confuso, es posible que desee leer un [Tutorial de Mercurial] (http://hginit.com) –

+1

La extensión fetch también vale la pena mirar ya que combina un pull, merge y commit (si es necesario) como así como actualizar en un solo comando. –

Respuesta

42
actualización

hg: http://www.selenic.com/mercurial/hg.1.html#update

  • actualización de directorio de trabajo del repositorio (la "copia de trabajo") para la revisión especificada del repositorio

hg tirón: http://www.selenic.com/mercurial/hg.1.html#pull

  • Permite Para llevar cambios desde un repositorio remoto

Así que cuando haces un jg pull, traes cambios a tu repositorio que está bajo .hg. No se reflejará en su directorio de trabajo.

Después de eso, cuando hace un hg update, los cambios se llevan a su copia de trabajo.

Your repo         Remote Repo 
\          \ 
    |    hg pull     | 
    |-.hg <-------------------------------- |-.hg 
    | | --------------------------------> | 
    | hg update  hg push    | 
    | |         | 
    |- working folder      |- working folder 

Esto es una confusión muy habitual cuando se trata de subversión, como los sistemas de control de versiones.

En la subversión: svn update traer los cambios desde un servidor repo central para su copia de trabajo

Pero en DVCSs, que tienen tanto un repositorio local y la copia de trabajo. Así que la actualización hace exactamente lo mismo, pero saca los cambios de su repositorio local a la copia de trabajo local.

15

Mercurial es un sistema de control distribuido de versiones, por lo que tiene toda la historia de recompra, así como su versión del código (llamada la "copia de trabajo").

pull trae cambios remotos a su repositorio local.

update cambia su copia de trabajo para que coincida con la versión más reciente en su repositorio local.

Así que si clonas una rama remota y sigues ejecutando la actualización, tu código no cambiará porque nunca estarás descargando el código remoto. Si continúa ejecutando pull, entonces su código no cambiará porque nunca es usando el código remoto (aplicándolo a su versión de trabajo del código).

Cuestiones relacionadas