4 votes

Git ne fonctionne pas sur AFP

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.

2voto

Tim N. Points 136

Nous avons rencontré le même problème à plusieurs reprises, en particulier lorsque nous essayons d'utiliser XCode 6. Je suis actuellement en train de changer ma connexion à notre serveur en WebDAV (connexion à notre serveur via Finder > Go (menubar) > Connect to Server... > https://localnetworkIP/userfolder/ ).

Cela fonctionne pour nous (jusqu'à présent).

MISE À JOUR : Après quelques jours, j'ai remarqué un nouveau problème en utilisant WebDAV : les fichiers disparaissaient de la vue dans le Finder, ce qui faisait penser à XCode/Git que le fichier avait été supprimé. En regardant le serveur, on constate que les fichiers sont toujours là.

J'ai ensuite changé mon type de connexion en SMB. Cela a bien fonctionné pour moi : Git ne rencontre plus d'erreurs de permission de fichiers, et le Finder (OSX 10.10 Yosemite) ne "perd" plus de fichiers.

0voto

grg Points 181593

L'erreur indique qu'il ne peut pas écrire sur .git/index ce qui signifie généralement qu'il ne peut pas écrire dans le dossier .git soit.

Assurez-vous que vous avez la permission de .git et appliquer récursivement ces autorisations au contenu du dossier et des sous-dossiers, ainsi qu'aux nouveaux fichiers qui sont créés.

0 votes

Bonne supposition, mais il semble que j'ai la permission. Veuillez voir la mise à jour de ma question.

0voto

Sam Kington Points 161

J'ai ce problème par intermittence, et taper git status sur l'hôte distant le résout pour moi.

0 votes

Merci, je n'utilise plus Git sur AFP mais je vais essayer votre idée la prochaine fois que je le ferai.

0voto

kaorukobo Points 111

Bien que cette réponse puisse ne pas satisfaire vos besoins, Mercurial fonctionne sur un volume AFP sans aucun problème. .

J'ai rencontré le même problème. Git est mon principal VCS, mais je n'avais pas de meilleure solution que de passer à Mercurial dans ce cas.

Heureusement, le changement a été facile car les deux outils sont très similaires dans le cadre d'une utilisation de base.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X