Ho seguito l'approccio fasullo sopra (grazie man!) E l'ho modificato per funzionare con Mercurial.
È necessario modificare .hg/hgrc sul server centrale e inserire un hook di changegroup. Tenere presente che i changegroups impostano solo il primo changeset sulla variabile di ambiente HG_NODE, quindi è necessario eseguire un hg tip su prendi il vero nodo tip e passa quello tramite URL.)
Questo è quello che faresti per Hudson in esecuzione su 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
fonte
2010-12-30 20:51:06
È necessario fare attenzione che questo non causi problemi di prestazioni per Hudson. Ad esempio, se si verificano dei commit ogni pochi secondi, mentre una build hudson richiede alcuni minuti. Presto invaderai la coda di costruzione. – toolkit
Per la vita di me, non riesco a capire perché questo potrebbe essere necessario. Perché qualcosa di diverso dallo stato attuale della base di codice dovrebbe essere importante? – sal
Salve, la ragione di ciò è il test. Miriamo a mettere ogni revisione attraverso un test di regressione. Quindi, se non stiamo costruendo ogni revisione, non stiamo testando ogni revisione. Questo causa problemi se rev n funziona ma rev n + 10 non lo è e non abbiamo testato nessuna delle revisioni tra. Quale cambiamento ha causato la regressione? – CodeBuddy