Tomé el enfoque de fchateaus (¡gracias hombre!) Y lo modifiqué para que funcione con Mercurial.
Deberá editar .hg/hgrc en el servidor central y colocar un enlace de grupo de cambios. Tenga en cuenta que changegroups solo establece el primer conjunto de cambios en la variable de entorno HG_NODE, por lo que debe hacer una sugerencia de hg para tomar el nodo de punta real y pasarlo a través de URL en su lugar. Un truco para hacer en una línea, pero lo descubrí.
Esto es lo que harías por Hudson corriendo en Windows.
[hooks]
# this uses wget to hit the hudson url responsible for starting a build - %HG_NODE% only gets first changeset of changegroup, so use hg tip to grab changeset most recently added instead
changegroup.hudson = for /f "tokens=*" %G IN ('hg tip --template {node}') DO "C:\Program Files (x86)\UnxUtils\usr\local\wbin\wget" --non-verbose --spider http://HudsonServer:8080/job/{Repository}/buildWithParameters?HgRevId=%G | ECHO Result of Hudson Polling Request For Node %G
# TODO: when Hudson implements polling with parameters, change to something like this
#changegroup.hudson = for /f "tokens=*" %G IN ('hg tip --template {node}') DO "C:\Program Files (x86)\UnxUtils\usr\local\wbin\wget" --non-verbose --spider http://HudsonServer:8080/job/{Repository}/polling?HgRevId=%G | ECHO Result of Hudson Polling Request For Node %G
Debe tener cuidado de que esto no cause problemas de rendimiento para Hudson. Por ejemplo, si realiza commits cada pocos segundos, mientras que una compilación hudson tarda unos minutos. Pronto inundarás la cola de compilación. – toolkit
Por mi vida, no veo por qué podría ser necesario. ¿Por qué sería importante algo diferente al estado actual de la base del código? – sal
Hola sal, la razón de esto es la prueba. Nuestro objetivo es poner cada revisión a través de una prueba de regresión. Entonces, si no estamos construyendo cada revisión, no estamos probando cada revisión. Esto causa problemas si rev n funciona, pero rev n + 10 no lo está y no hemos probado ninguna de las revisiones entre. ¿Qué cambio causó la regresión? – CodeBuddy