El plugin git para hudson funciona bien. Sin embargo, la secuencia de comandos de compilación debe actualizar un número de versión en los archivos en el repositorio, confirmar y volver al repositorio.Hudson infinite loop polling para cambios en el repositorio de Git?
Cuando Hudson sondea al lado para comprobar si hay cambios, entra en un bucle infinito porque ve que se compromete como un "cambio" se vuelve a crear, lo que confirma un cambio, se vuelve a generar, se comete otro cambio, etc. .. Tienes la idea.
lo paré, se pasó una "git log" en cada repositorio y compararon los últimos cometer los identificadores son exactamente los CABEZA misma usando 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ó el commit desde su repositorio espacio de trabajo, y al parecer los resultados coinciden ls de árboles, ¿cómo se puede este comando determina que haya habido un cambio?
Parece que debe almacenar los resultados de ls-tree antes de realizar la compilación y compararlos con los que no tendrán la última confirmación. Ah. Puedo intentar desactivar el compromiso para probar esa teoría.
De todos modos, en lugar de solucionar cualquier problema en el complemento git para Hudson, ¿qué puedo hacer para asegurarme de que al final de mi compilación los repos son idénticos y que Hudson lo verá así?
¿Cómo solucionar esto? ¿Algunas ideas?
Wayne
Efectivamente. Cuando la confirmación está comentada para que la secuencia de comandos solo empuje a algunos repositorios, funciona correctamente. Es decir, Hudson reconoce que se produjeron cambios cero y espera cambios sin bucle. Entonces, ¿cómo detener el ciclo infinito? Parece que el complemento git para Hudson guarda el estado de repos después de la recuperación inicial de la compilación. Pero parece que debería guardar nuevamente el estado de repos después de una compilación exitosa en caso de que la compilación se haya comprometido, o al menos dar eso como una opción. ¿Alguien tiene una idea más fácil y más rápida para resolver esto? – Wayne
Oh, encontré un tenedor del plugin git-hudson en github donde parece que alguien más ya ha agregado el manejo de esta situación. Estoy descargando y construyendo e intentaré eso. De nuevo, si alguien tiene una mejor solución, por favor asesórese. Voy a publicar de nuevo si eso lo resuelve. – Wayne