mercurial teamcity

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



(3)

Quiero que mi compilación continua de Noda Time , alojada en un servidor TeamCity privado en mi hogar, busque el registro de Mercurial como un archivo XML. El código fuente está alojado en Google Code . Esto es para que pueda usarlo para la búsqueda de puntos de referencia en el sitio web público . Todo es un trabajo en progreso, pero básicamente está empezando a reunirse.

Esperaba que buscar el registro como parte de la creación de TeamCity fuera sencillo. Después de todo, ya se ha recuperado la fuente para realizar la compilación. Desde un directorio de repositorio normal, simplemente 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 de Mercurial real, es una copia de los contenidos del repositorio en la confirmación correspondiente. Eso significa que no puedo ejecutar el hg log en ese directorio ... o cualquier otro directorio que haya podido encontrar hasta ahora. Ninguno de los parámetros de compilación predefinidos parece tener una ruta de repositorio local, aunque espero que me haya perdido una.

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 inútil.

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


¿Tiene la configuración de pago de su agente establecida en " on agent "?

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

Puedes encontrar la configuración aquí:


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


Trate de verificar como "Automáticamente en agente". Esto debería hacer que el directorio de checkout sea un repositorio real.