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 .git
y .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 .git
lo 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 index
archivo:
$ cp .git/index backup; mv backup .git/index
mv: rename backup to .git/index: Resource busy
Pero fuser
y lsof
no 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 index
archivo 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?
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 .git
aplicar recursivamente dichos permisos al contenido de la carpeta y las subcarpetas, y a los nuevos archivos que se creen.
Recibo esto de forma intermitente, y al escribir el estado de git en el host remoto se soluciona.
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.
mmmmmm