У меня есть репозиторий git на файловом сервере, к которому я подключаюсь через AFP. Всякий раз, когда я пытаюсь выполнить операцию git в общем репозитории, например, создать файл, я получаю следующее сообщение об ошибке:
fatal: Unable to write new index file
Если я выполняю команду git на сервере, она работает нормально, поэтому есть что-то в совместном использовании репозитория через AFP, что не работает.
Я использую Mountain Lion как на сервере, так и на клиенте.
ОБНОВЛЯТЬ
Кажется, у меня есть разрешение на запись для обоих .git
и .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
Я попытался рекурсивно применить разрешения, .git
как это было предложено в ответе ниже, но это не помогло:
$ chmod -Rv +w .git
$ git add deploy.js
fatal: Unable to write new index file
Хм, похоже, что кто-то другой использует index
файл:
$ cp .git/index backup; mv backup .git/index
mv: rename backup to .git/index: Resource busy
Но fuser
и lsof
не помогают:
$ fuser -fu .git/index
.git/index:
$ lsof .git/index
Странный обходной путь: если я выполню следующую команду на сервере , это позволит мне записать новый index
файл на клиенте через AFP.
$ cp .git/index backup; mv backup .git/index
Я полностью потерян в этот момент; любые новые теории?
Мы неоднократно сталкивались с одной и той же проблемой, особенно когда пытаемся использовать XCode 6. В настоящее время я меняю свое подключение к нашему серверу на WebDAV (подключение к нашему серверу через Finder> Перейти (меню)> Подключиться к серверу. . > https://localnetworkIP/userfolder/ ).
Это работает для нас (пока).
ОБНОВЛЕНИЕ: через несколько дней я заметил новую проблему с использованием WebDAV: файлы исчезали из поля зрения в Finder, из-за чего XCode/Git думал, что файл был удален. Просмотр сервера показал, что файлы все еще там.
Затем я изменил тип подключения на SMB. Это хорошо сработало для меня: Git больше не сталкивается с ошибками прав доступа к файлам, а Finder (OSX 10.10 Yosemite) не «теряет» файлы.
Ошибка указывает на то, что он не может писать в.git/index
, что обычно означает, что он не может писать .git
и в него.
Убедитесь, что у вас есть разрешение, .git
и рекурсивно применяйте такие разрешения к содержимому папки и подпапок, а также к новым создаваемым файлам.
Я получаю это периодически, и ввод git status на удаленном хосте исправляет это для меня.
Хотя этот ответ может не удовлетворить ваши потребности, Mercurial без проблем работает с объемом AFP .
Я столкнулся с той же проблемой. Git — моя основная VCS, однако в этом случае у меня не было лучшего способа, чем перейти на Mercurial.
К счастью, переключение прошло легко, поскольку оба инструмента очень похожи в рамках базового использования.
мммммм