2011-10-27 14 views
5

Actualmente estoy trabajando en un proyecto que tiene varios repositorios mercurial. Cada repositorio mercurial contiene el código fuente de una biblioteca o un archivo binario, todos los cuales están siendo desarrollados activamente.Mercurial - hg actualización a una fecha específica en una rama con nombre

Puede imaginar que la compatibilidad entre productos creados a partir de cada repositorio puede convertirse rápidamente en un problema. Una forma de aliviar este problema es actualizar cada repositorio local para que esté en las ramas compatibles y luego actualizar a una fecha particular en estas ramas, con la visión de que en cualquier momento las ramas eran compatibles.

En una rama llamada, dicen V0.X, en la etiqueta V0.1

hg identify 

da

934ad264137e (V0.X) V0.1 

luego actualizar a una fecha determinada (todavía quiero permanecer en el V0. rama X)

hg update -d "<10/28/11" 

ahora identificar

hg identify; hg branch 

da

51a072771de7 tip 
default  

¿Alguien sabe cómo actualizar lo largo de una rama llamada a una fecha sin el peligro de saltar a otra rama?

Cualquier ayuda sería apreciada.

Jon.

+0

Buena pregunta, pero la documentación de ayuda 'hg update' dice:' -d --date FECHA tipmost revisiones coincidentes date'. No estoy seguro de lo que eso significa, aunque ... :( – hochl

Respuesta

2
hg help revset 
"branch(string or set)" 
    All changesets belonging to the given branch or the branches of the 
    given changesets. 

...

"fecha (intervalo)" Cambios dentro del intervalo, ver las fechas "hg ayuda".

darnos flujo de trabajo como

  • hg log -r "rama ('V0.X') y tipo (fecha (' < 10/28/11'), fecha)"
  • encontrar la revisión N en la lista
  • hg update -r N
+0

bueno, las páginas 1-2 se pueden convertir en un paquete de líneas, que, como parámetro -r de la actualización, nos dan el resultado solicitado –

+1

Sí, creo que el siguiente trazador hace lo que se solicitó: hg update -r "branch ('V0.X') y date ('<10/28/11')" – ketorin

Cuestiones relacionadas