En mercurial, la forma de ver las etiquetas de sólo un conjunto de revisiones en lugar de todos?

StackOverflow https://stackoverflow.com/questions/4521648

  •  12-10-2019
  •  | 
  •  

Pregunta

hg tags siempre muestra todas las etiquetas, así que ¿cómo puedo obtener sólo las etiquetas que apuntan a una revisión específica y todos sus antepasados?

El caso de uso en el mundo real es que si uso las etiquetas locales para designar características (o correcciones de errores) en conjuntos de cambios, y necesito averiguar las características acumulativas / bichos arriba hasta un rev específica.

Una solución sería añadir un comando de contenedor que añade "r" a tags. Entonces ¿cuál es la mejor manera de ponerla en práctica? Use revsets para obtener todas las revoluciones ancestrales y filtrar las etiquetas?

¿Fue útil?

Solución

Esto debería hacer el truco (requiere mercurial 1.7):

hg log -r "ancestors(<rev>) and tag()"

donde <rev> es el hash o número de revisión local. Sin embargo, el etiquetado de cada corrección de errores y la función parece un exceso.

En lugar de etiquetado, sólo puede seguir una convención donde pones "corrección de errores: xyz" o "característica: abc" en sus mensajes cometer. A continuación, puede extraer todas las correcciones y características de esta manera:

hg log -r "ancestors(<rev>) and (keyword(bugfix) or keyword(feature))"

Mantenga las etiquetas de los hitos importantes u otras revisiones que tienen un significado especial.

Otros consejos

Si he entendido bien, se desea:

  • Especifica una revisión
  • filtrar el registro con sólo el conjunto de cambios + todos sus antepasados ??
  • Extraer todas las etiquetas que se encuentran en esos conjuntos de cambios

Se puede hacer eso si puede limitarse a los nombres de etiquetas:

hg log -r "ancestors(HASH)" --template "{tags}"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top