Pregunta

El plugin git para Hudson funciona bien. Sin embargo, la escritura de la estructura debe actualizar un número de versión en los archivos en el repositorio, comprometerse y hacer retroceder al repositorio.

Cuando las encuestas Hudson siguiente para comprobar si hay cambios, se entra en un bucle infinito porque ve que cometen como un "cambio" se basa de nuevo, que compromete a un cambio, por lo que se acumula de nuevo, entonces se comete otro cambio, etc .. . Usted consigue la idea.

lo paré, encontré un "git log" en cada repositorio y se comparan las últimas cometer los identificadores son exactamente la misma CABEZA utilizando git ls-árbol

Además, Hudson se ejecuta este comando para comprobar si hay cambios:

git fetch + refs / heads / : refs / mandos a distancia / origen / CABEZA git ls-árbol

Desde propio Hudson empujó la confirmación de su repositorio de espacio de trabajo, y al parecer los resultados coinciden ls de árboles, ¿cómo puede esta orden a determinar que existe como un cambio?

Parece que hay que almacenar los resultados de ls-árbol antes de hacer la construcción y en comparación con lo que no tendrá la última comprometerse. Ah. Puedo tratar de apagar el comprometerse a prueba esa teoría.

De todos modos, en lugar de corregir cualquier problema en el plugin de git para Hudson, ¿qué puedo hacer para asegurarse de que al final de mi construcción que los repositorios son idénticos y que Hudson lo verá así.

¿Cómo solucionar este problema? ¿Alguna idea?

Wayne

¿Fue útil?

Solución 2

Y la respuesta es! ...

El plug-in Git Hudson ya se bifurca por alguien para añadir esta característica funciona bien. Aún así, tuve que tirar hacia abajo la fuente y arreglar un par de problemas menores.

Ahora funciona muy bien. La acumulación se compromete, y el plugin Git empuja de nuevo al repositorio sin bucle, pensando que ha cambiado de nuevo.

maravilloso!

Si alguien necesita este aspecto para el tenedor tickzoom del Hudson-GIT-Plugin en Github.com pero comprueba para ver si ya se ha integrado de nuevo en el proyecto principal. El confirmador dijo que estaba interesado y la planificación en la combinación de las horquillas.

Wayne

Otros consejos

Su sistema de construcción no debe tener ninguna interacción de escritura con el sistema de control de versiones. Es sin duda no debe empuje esos cambios de forma automática.

Su sistema de construcción puede preguntar Git (a través de git describe, por ejemplo) lo que la versión actual es. Todo lo demás es redundante y propenso a errores.

Otra cosa que se puede considerar que no es de sondeo para cambios. Eso parece como una manera tonta para operar. (Es cierto, soy un usuario buildbot pesada muy acostumbrados a tener todo lo que se activará en los acontecimientos.)

El repositorio git que está siendo sondeado sabe cuando cambia. Sólo debe indicar al sistema CI para comenzar una acumulación de inmediato en base a eso. Usted obtener su construye más pronto y ya todos están provocados, no tener sus ordenadores sentado sin hacer un montón de trabajo sin una buena razón.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top