Git no funciona sobre AFP

Tengo un repositorio git en mi servidor de archivos al que me estoy conectando a través de AFP. Cada vez que intento realizar una operación de git en el repositorio compartido, como preparar un archivo, aparece el siguiente mensaje de error:

fatal: Unable to write new index file

Si ejecuto el comando git en el servidor, funciona bien, por lo que hay algo acerca de compartir el repositorio a través de AFP que no funciona.

Estoy usando Mountain Lion tanto en el servidor como en el cliente.

ACTUALIZAR

Parece que tengo permiso de escritura para ambos .gity .git/index:

$ ls -ld .git
drwxr-xr-x  1 david  staff  364 Nov 29 22:38 .git/
$ ls -l .git/index
-rw-r--r--  1 david  staff  2232 Nov 29 21:45 .git/index
$ cp .git/index backup
$ echo change >> .git/index

Intenté aplicar permisos recursivamente como .gitlo sugiere una respuesta a continuación, pero eso no ayudó:

$ chmod -Rv +w .git
$ git add deploy.js 
fatal: Unable to write new index file

Hmm, parece que alguien más está usando el indexarchivo:

$ cp .git/index backup; mv backup .git/index
mv: rename backup to .git/index: Resource busy

Pero fusery lsofno son de ninguna ayuda:

$ fuser -fu .git/index
.git/index: 
$ lsof .git/index

Solución extraña: si hago el siguiente comando en el servidor , me permite escribir un nuevo indexarchivo en el cliente a través de AFP.

$ cp .git/index backup; mv backup .git/index

Estoy totalmente perdido en este punto; alguna teoria nueva?

Sugeriría que git generalmente (¿mejor?) Se guarda en su disco local. Luego, puede clonar a un servidor para hacer una copia de seguridad, o tener otro repositorio ejecutándose como un servidor git.

Respuestas (4)

Nos hemos encontrado con el mismo problema repetidamente, especialmente cuando tratamos de usar XCode 6. Actualmente estoy cambiando mi conexión a nuestro servidor a WebDAV (conectando a nuestro servidor a través de Finder> Ir (barra de menú)> Conectar al servidor... > https://IPderedlocal/carpetadeusuario/ ).

Esto está funcionando para nosotros (hasta ahora).

ACTUALIZACIÓN: después de unos días, noté un nuevo problema al usar WebDAV: los archivos desaparecían de la vista en el Finder, lo que hacía que XCode/Git pensara que el archivo se había eliminado. Mirar el servidor mostró que los archivos todavía estaban allí.

Luego cambié mi tipo de conexión a SMB. Esto funcionó bien para mí: Git ya no encuentra errores de permisos de archivos y Finder (OSX 10.10 Yosemite) no "pierde" archivos.

El error indica que no puede escribir en.git/index , lo que generalmente significa que tampoco puede escribir .git.

Asegúrese de que tiene permiso para .gitaplicar recursivamente dichos permisos al contenido de la carpeta y las subcarpetas, y a los nuevos archivos que se creen.

Buena suposición, pero parece que tengo permiso. Por favor, vea la actualización de mi pregunta.

Recibo esto de forma intermitente, y al escribir el estado de git en el host remoto se soluciona.

Gracias, ya no uso Git sobre AFP, pero probaré tu idea la próxima vez que lo haga.

Aunque esta respuesta puede no satisfacer tus necesidades, Mercurial funciona en volumen AFP sin ningún problema .

Me he encontrado con el mismo problema. Git es mi VCS principal, sin embargo, no tenía una mejor manera que cambiar a Mercurial en ese caso.

Afortunadamente, el cambio fue fácil ya que ambas herramientas son muy similares en el ámbito del uso básico.