¿Cómo puedo obtener de manera eficiente un registro de cambios Mercurial en TeamCity?


Quiero que mi Noda Time continuous build - alojado en un servidor privado de TeamCity en mi hogar - obtenga el registro Mercurial como un archivo XML. El código fuente está alojado en Google Code. Esto es para que pueda usarlo para comparar la navegación en el sitio web público. Todo es en gran medida un trabajo en progreso, pero básicamente está empezando a unirse.

Esperaba que obtener el registro como parte de la compilación de TeamCity fuera simple. Después de todo, ya está recuperado la fuente para realizar la compilación. Desde un directorio de repositorio normal, solo puedo ejecutar:

hg log --style xml > hg-log.xml

Desafortunadamente, por lo que puedo ver, el directorio "checkout" en Team City no es un repositorio Mercurial real - es una copia de solo el contenido del repositorio en la confirmación apropiada. Eso significa que no puedo ejecutar hg log en ese directorio... o cualquier otro directorio que he podido encontrar hasta ahora. Ninguno de los parámetros predefinidos de compilación parece tener un repositorio local camino, aunque estoy esperando He perdido uno.

Mi solución actual es recuperar la fuente nuevamente como parte de la compilación (solo la rama predeterminada, por supuesto) y luego usarla para obtener el registro. Funciona, pero se siente increíblemente derrochador.

No me queda claro cómo o dónde TeamCity realiza realmente la comprobación de la fuente - realmente espero que haya un repositorio local en algún lugar que pueda usar para obtener el registro.

Author: Jon Skeet, 2014-03-29

3 answers

¿Tiene la configuración de pago del agente establecida en " en el agente"?

De forma predeterminada, el servidor realiza un checkout y luego envía los bits al cliente.

Puede encontrar la configuración aquí:

 21
Author: Lucas Meijer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-24 15:39:30

Intente salir como 'Automatically on agent'. Esto debería hacer que el directorio de pago sea un repositorio real.

 8
Author: mattyB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-28 20:54:10

Dile a TeamCity que revise al agente. De esa manera, sus agentes de compilación ejecutarán hg, y el directorio de comprobación en el agente será un repositorio en el que puede ejecutar hg log --style xml > hg-log.xml.

 7
Author: Bojan Rajkovic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-28 20:53:08