Pregunta

Me gustaría saber si hay una manera de etiquetar automáticamente un conjunto de cambios, ya que se ha comprometido a nivel local o cuando se empuja al repositorio horno.

Me gustaría cada conjunto de cambios para tener una etiqueta con el número de versión / build. Tengo la intención de guardar mis números de versión / build en una base de datos y me gustaría tener un script recuperar este valor de la base de datos y añadir una etiqueta al conjunto de cambios. ¿Es posible invocar una secuencia de comandos de forma automática para hacer esto como un evento post-commit o como un evento posterior a la presión cuando se empuja al repositorio horno?

También estoy abierto a cualquier otro enfoque para lograr el etiquetado automático en cada commit / push.

¿Fue útil?

Solución

En lugar de crear una etiqueta para cada conjunto de cambios, por qué no probar uno de los siguientes:

  • Usar el hash de cambios como el identificador?
  • Usar una cadena generada a partir del registro como su identificador (ver más abajo)?

Una cadena descriptiva puede generarse a partir del registro usando este comando:

hg log -r 1.7.2 --template '{latesttag}-{latesttagdistance}-{node}\n'

El resultado toma la forma:

<latest tag>-<# changesets since latest tag>-<changeset hash>

Por ejemplo, en mi clon local de la repo Mercurial, esto genera:

1.7.2-2-5e51254ad4d4c80669f462e310b2677f2b3c54a7

Lo que me dice que ha habido dos confirmaciones desde la etiqueta 1.7.2 y el hash conjunto de cambios actual es 5e51254a.

En Mercurial, cada etiqueta crea un nuevo conjunto de cambios. Así que si etiquetas cada commit, se duplica el número de conjuntos de cambios en el repositorio. Usted debe utilizar las herramientas integradas (como se describió anteriormente) en lugar de tratar de reinventar la rueda.

Otros consejos

  

Me gustaría saber si hay una manera de etiquetar automáticamente un conjunto de cambios, ya que se ha comprometido a nivel local o cuando se empuja al repositorio horno.

Siempre se podría escribir un post cometer gancho para hacer eso.

  

Me gustaría cada conjunto de cambios para tener una etiqueta con la versión / número de compilación.

Las etiquetas son útiles para identificar realmente importantes de la historia de comprometerse. Proporcionar esos momentos un nombre significativo que se relaciona con el desarrollo de productos como la versión 1.0, versión 1.3, etc.

Si se va a hacer una etiqueta de cada cambio configura entonces usted acaba de aumentar el nivel de ruido. Usted todavía tendrá que mantener la información acerca de las etiquetas importantes en algún lugar.

Considere etiqueta como meta información acerca del cambio de conjuntos. No todos ellos merecen la misma importancia. No todos ellos requieren que la información de metadatos.

En cuanto a las etiquetas le puede dar la historia significativa sólo cuando se los usa con moderación.

  

En ganchos

Vea:

Ejemplo: Ejecutar después de un changegroup ha sido añadido a través de empujar, tirar o Unbundle. Lo he utilizado para desencadenar automática construye.

[hooks]
changegroup.yyyy = command 

Del mismo modo, no es post-cometió, ganchos post-empuje

[hooks]
post-<command> =  command
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top