2009-09-09 18 views
6

Estoy viendo el comando 'extraer' y me pregunto cómo es eso diferente de un 'clon'. Ambos términos parecen implicar la recuperación de código desde algún repositorio remoto. ¿Hay alguna distinción sutil aquí?¿Es 'pull' un sinónimo de 'clon' en un repositorio Mercurial de control de fuente?

+1

Dado que parece que acaba de comenzar con Mercurial, probablemente debería leer esta pregunta sobre el desbordamiento de pila: http://stackoverflow.com/questions/1170338/mercurial-for-beginners-the-definitive-practical-guide Usted también debe leer y/o trabajar en los primeros capítulos de "Mercurial: The Definitive Guide": http://hgbook.red-bean.com/read/ Finalmente, es posible que desee crear un proyecto de juguete en http: // bitbucket.org/ para obtener algo de práctica trabajando con Mercurial. – las3rjock

+0

Grandes enlaces. Muy útil. Gracias. – tent

+0

http://hginit.com/ también proporciona un excelente tutorial. Tengo todos mis nuevos empleados y pasantes trabajando en ello cuando se unen a mi equipo. – JSmitty

Respuesta

11

hg clone es la forma de hacer una copia local de un repositorio remoto. El equivalente de Subversion es svn checkout.

hg pull extrae los cambios de otro repositorio. hg update aplica esos cambios al repositorio local. hg pull -u es equivalente a hg pull; hg update. Subversion equivalente a hg pull -u es svn update.

19

Use clone cuando necesite crear un nuevo repositorio basado en otro. Use tire más tarde para transferir nuevos conjuntos de cambios al clon. No se puede usar el clon para obtener solo los conjuntos de cambios más nuevos; para eso está el tirón. El comando de extracción comparará los dos repositorios, encontrará los conjuntos de cambios faltantes en su repositorio y finalmente los transferirá.

Sin embargo, tiene razón en que hay similitudes entre clonar y extraer: ambos transfieren el historial entre repositorios. Si se clona primero

hg clone https://www.mercurial-scm.org/repo/hg/ 

entonces esto tiene el mismo efecto que hacer

hg init hg 
cd hg 
hg pull https://www.mercurial-scm.org/repo/hg/ 
hg update 

se obtiene la misma historia exacta en ambos casos. El comando clon es más conveniente, sin embargo, ya que también edita el archivo .hg/hgrc para que usted pueda configurar la ruta predeterminada:

[paths] 
default = https://www.mercurial-scm.org/repo/hg/ 

Esto es lo que le permite hacer hg pull en el repositorio sin especificar una dirección URL. Otra ventaja de usar clon es cuando trabajas con repositorios en el mismo disco: hg clone a b será muy rápido y barato en términos de espacio en disco ya que b compartirá el historial con a. Esto se hace usando enlaces duros y funciona en todas las plataformas (Windows, Linux, Mac).

2

clon crea un nuevo repositorio como copia de un repositorio existente.

pull importa todos los conjuntos de cambios (no presentes) de otro repositorio en un repositorio existente.

Cuestiones relacionadas