OS X Server: el bot no puede get la fuente del repository

Tenía una versión anterior de OS X Server configurada y funcionando bien, pero cuando instalé la actualización a 3.2.1, descubrí que ninguno de mis robots funcionaría correctamente. Estos son los problemas que obtengo en cada bash de integración:

Error de service de compilation No se pueden ajustar los datos en el búfer (-1).

Advertencia de service de compilation La operación de control de fuente falló porque no se pudo encontrar ninguna copy de trabajo.

Generar aviso de service Se produjo un error al actualizar el pago existente. Volviendo a un checkout limpio …

Puede que esté buscando en el lugar equivocado, pero creo que los errores significan que no puedo conectarme a mi repository Git. Esto fue parcialmente confirmado cuando eliminé mi repository de Xcode y volví a ejecutar el bot y obtuve los mismos errores. (Desde entonces he vuelto a agregar el repository en Xcode y he realizado una comprobación para probarlo, así que estoy bastante seguro de que tengo todos los detalles de connection correctos).

Con la versión anterior de OS X Server, estoy seguro de que me he conectado al repository directamente desde el server, tal como se explica en Help > Server Tutorials > Automate Xcode builds :

Paso 3. Dar acceso al service Xcode al repository git

Los bots de service Xcode acceden a proyectos y códigos desde su repository git de origen.

Haga clic en Repositorios, luego click el button Agregar (+). Elija Conectar a un repository Git desde el menu emergente Nuevo Repositorio.

Pero en la última versión, cuando haces clic en el button Agregar, obtienes la opción de crear un nuevo repository, en lugar de conectarte a uno existente. Y las instrucciones en la web (ahora) dicen:

Conectarse a repositorys remotos

Si tiene proyectos en repositorys Git o Subversion en serveres remotos, puede almacenar sus cnetworkingenciales para ellos en su Mac de desarrollo en las preferences de Cuentas en Xcode. Luego, cuando necesite acceder a los repositorys, no tendrá que volver a ingresar sus cnetworkingenciales cada vez.

Para agregar las cnetworkingenciales de un repository remoto a un Mac de desarrollo

Para que Xcode Server realice integraciones en sus proyectos, también debe tener acceso a sus repositorys de código fuente. Configure Xcode Server para conectarse a sus repositorys remotos.

  • Elija Xcode> Preferences en su Mac de desarrollo.

  • Haga clic en Cuentas en la barra de herramientas.

  • Haga clic en el button Agregar (+) y elija Agregar repository.

  • En el campo de text, ingrese la URL del repository (por ejemplo, svn + ssh: //svn.example.com/ProjectName o https://example.com/git/repository.git ), y click el button Siguiente.

  • Ingrese su nombre de usuario y contraseña en el panel Repositorio de las preferences de Cuentas.

que es un poco vago, pero parece sugerir que ahora OS X Server utiliza repositorys que están configurados en las preferences de Xcode.

De todos modos, ahora mi server OS X no parece tener acceso al repository. ¿Me estoy perdiendo de algo?

Gracias

ACTUALIZAR:

Volví a este problema después de un mes de fingir que no existía, y he hecho los siguientes hallazgos:

-El problema ocurre con OS X Server 3.2.1, OS X Server 3.2.2 y OS X Server 4.0, en dos máquinas diferentes.

-El problema ocurre cuando el repository está en un server que ejecuta Gitblit, pero no para los repositorys de Bitbucket remotos, o para un repository de Git alojado en un server OS X local.

-El problema solo ocurre para reposiciones más grandes.

¡He resuelto este problema de la manera más intrincada imaginable!

Cuando OS X Server se conecta al repository para download la fuente, usa la biblioteca Xcode. Xcode usa libgit2 para realizar la descarga que tenía un error conocido que causó el error del buffer. Se corrigió en v0.21.2, pero el último Xcode (6.1.1) solo usa v0.21. Esa versión anterior de Xcode solo usó v0.20, así que es de esperar que una versión futura de Xcode use v0.21.2 + en cuyo caso esta corrección no debería ser necesaria.

De todos modos, la solución para Xcode 6.1.1 fue:

  1. Descargue y descomprima la versión de gitlib utilizada por Xcode desde aquí: https://github.com/libgit2/libgit2/releases/tag/v0.21.0
  2. Realice los cambios a src / transportes / http.c como se detalla aquí: https://github.com/libgit2/libgit2/commit/7d729d0bfd897e8685099b160b6dbfd7f4ebd588
  3. Guarde el file http.c
  4. Genere su versión editada de gitlib2 usando las instrucciones aquí , es decir:

    • Descargar CMake
    • Ejecute los siguientes commands en Terminal después de navegar a su carpeta descomprimida libgit2-0.21.0:

      $ mkdir build && cd build

      $ cmake …

      $ cmake –build.

  5. En Finder en su server , vaya a la carpeta Aplicaciones, haga clic derecho en Xcode y select "Mostrar contenido del package". Vaya a la carpeta Contents / Developer / usr / lib y cambie el nombre del file 'libgit2.dylib' por 'libgit2.dylibold' o similar.

  6. Tome el file 'libgit2.0.21.0.dylib' recién creado de la carpeta libgit2-0.21.0 / build, cámbiele el nombre a 'libgit2.dylib' y cópielo en / Applications / Xcode / Contents / Developer / usr / lib carpeta en su server.

  7. Reinicie OS X Server e integre su bot nuevamente desde Xcode.

El repository remoto se agregará cuando crees un bot. No tiene que agregar repository en el server OSX.