J'ai un dépôt git sur mon serveur de fichiers auquel je me connecte via AFP. Chaque fois que j'essaie d'effectuer une opération git sur le dépôt partagé, comme la mise à disposition d'un fichier, j'obtiens le message d'erreur suivant :
fatal: Unable to write new index file
Si j'exécute la commande git sur le serveur, cela fonctionne bien. Il y a donc quelque chose qui ne fonctionne pas dans le partage du dépôt via AFP.
J'utilise Mountain Lion à la fois sur le serveur et sur le client.
UPDATE
Je semble avoir la permission d'écrire pour les deux .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
J'ai essayé d'appliquer récursivement les permissions sur .git
comme suggéré par une réponse ci-dessous, mais cela n'a pas aidé :
$ chmod -Rv +w .git
$ git add deploy.js
fatal: Unable to write new index file
Hmm, il semblerait que quelqu'un d'autre utilise la fonction index
fichier :
$ cp .git/index backup; mv backup .git/index
mv: rename backup to .git/index: Resource busy
Mais fuser
y lsof
ne sont d'aucune aide :
$ fuser -fu .git/index
.git/index:
$ lsof .git/index
Une étrange solution de contournement : Si je fais la commande suivante sur le serveur il me permet d'écrire une nouvelle index
sur le client via AFP.
$ cp .git/index backup; mv backup .git/index
Je suis totalement perdue à ce stade ; de nouvelles théories ?
0 votes
Je suggère que git est généralement (mieux ?) sauvegardé sur votre disque local. Ensuite, vous pouvez cloner sur un serveur pour la sauvegarde - ou avoir un autre repo fonctionnant comme un serveur git.