2012-05-11 8 views
7

¿Hay alguna manera de obtener una copia de un repositorio hg como lo estaba en una fecha determinada?clonar un directorio hg desde una fecha particular

Por ejemplo, en la subversión yo usaría:

svn checkout -r {2012-04-04} ... 

Y volvería a la salida de una revisión, ya que apareció en el cuarto de abril.

En Git es un poco más complicado, pero se puede hacer:

git checkout `git rev-list -n 1 --before="2012-04-04" master` 

Puede usted hacer lo mismo en hg?

+0

con git que puede hacer 'git checkout master @ {} '2.days.ago o' git checkout master @ {2012- 04-04} ' – kassens

Respuesta

17

(EDIT: hg update --date 2012-04-04 debe conseguir que la revisión tipmost partir de esa fecha: Mi amor de revsets me ha llevado a pasar por alto la respuesta obvia.) Especificaciones de fecha

Si usted tiene todo el repositorio ya clonado (no parecen trabajar con clone), se puede hacer

hg update --rev "date('< 2012-04-04')" 

Si hay una posibilidad de que el repositorio tenido múltiples cabezas/ramas en la fecha que desee, tendrá a y en algunos más condiciones para reducir abajo al conjunto de cambios correcto:

hg update --rev "date('< 2012-04-04') and branch(v1.1)" 

Salida hg help revsets y hg help dates para más información.

Más tarde, si desea volver a la punta, justo

hg update 
+0

Gracias-- eso explica por qué tuve problemas para encontrarlo, estaba buscando una solución con hg clone – kimon

+0

Entonces, aparentemente, si está comenzando desde la nada, primero necesita 'clonar' el repositorio, que le ofrece la última versión, y luego "rebajarla" invocando "actualizar" a una versión anterior. Algo raro. –

Cuestiones relacionadas