Загрузка в Git-репозиторий на NFS-ресурсе не удалась - PullRequest
2 голосов
/ 13 января 2011

В настоящее время у нас есть Git-репозитории на локальном диске.Они доступны группам и доступны через SSH (с помощью git-shell).

Из-за проблем с пространством мы теперь хотим переместить репозитории в общую папку NFS на NAS.Я экспериментировал с этим и столкнулся со странной проблемой.Свежий (и пустой) репозиторий с точно такими же разрешениями может быть клонирован нормально, но нажатие изменений (touch foo && git add foo && git commit && git push origin origin) завершается ошибкой «Не удалось установить refs /head / master"и" не удалось записать ".

Теперь, если я повторю этот сценарий на локальном диске, refs /head / master станет принадлежать любому пользователю, который нажал.И наоборот, на общем ресурсе NFS, если я изменю его владельца на пользователя, который пытается выдвинуть, ошибка не будет выдана.Однако в обоих случаях пользователь является членом группы, которая владеет всем хранилищем и имеет разрешение на запись в группу.Кроме того, если я просто войду в систему с использованием SSH как пользователь, который является членом этой группы, я могу коснуться refs /heads / master (как и следовало ожидать) как на общем ресурсе NFS, так и на локальном диске.

Следовательно, я здесь в недоумении.Я понятия не имею, почему другой владелец файла может привести к сбою push-сообщения, так как групповые разрешения позволяют пользователю перезаписывать refs /heads / master.Более того, даже если в этом файле есть chmod 777, загрузка не удастся, если я не скопирую файл.

Если кто-нибудь сможет пролить свет на эту странность, я буду очень признателен.Заранее спасибо!

1 Ответ

2 голосов
/ 13 января 2011

Ах, черт.NAS делает странные вещи с разрешениями, устанавливая фиксированный бит во всех каталогах.Это объясняет поведение.Дополнительный chmod решил проблему.

...