Git hook для сохранения прав доступа к файлам Windows

У меня есть локальный репозиторий git, который восходит к другому локальному репозиторию git. Когда я извлекаю данные из вышестоящего репозитория в нижестоящий, я хочу, чтобы права доступа Windows к определенному файлу сохранялись после обновления. Я попытался использовать следующее решение: https://github.com/git/git/blob/master/contrib/hooks/setgitperms.perl#L78

Но я считаю, что он основан на модели безопасности UNIX и не сохраняет мои разрешения. Как я могу это сделать? Я рассматривал возможность использования скрипта Python с модулем win32security (поскольку я не знаком с Perl), но не смог найти для него подходящей документации. У меня очень мало опыта работы с безопасностью Windows, кроме ручной установки разрешений.


person Sws750    schedule 09.08.2018    source источник
comment
Каков ваш основной вопрос? Если это просто Как я могу это сделать? тогда это слишком широко, поскольку существует бесчисленное множество способов.   -  person Patrick Parker    schedule 09.08.2018
comment
@PatrickParker На самом деле я думаю, что все в порядке. Как я могу это сделать? Типовые вопросы не являются по сути слишком широкими, только когда они похожи на «Как мне запрограммировать клон Facebook?». Этот вопрос имеет четкую и конкретную проблему.   -  person Ajean    schedule 09.08.2018
comment
Возможно. В любом случае вопрос необходимо уточнить, чтобы более четко показать, о чем в первую очередь спрашивают.   -  person Patrick Parker    schedule 10.08.2018


Ответы (2)


Вы можете настроить свой git config так, чтобы он игнорировал различия в правах доступа к файлам с помощью

git config --global core.fileMode false

Стоит попробовать, я думаю.

person RomainValeri    schedule 09.08.2018

Решение оказалось довольно простым. Мне просто нужно было установить хуки post-checkout и -merge, которые запускали скрипт Python для настройки прав доступа к файлам. Я достаточно почерпнул информацию о безопасности win32от здесь, чтобы работать с ним и использовать os.getcwd() (который установлен на корень репозитория git во время работы хука), чтобы найти правильный файл.

person Sws750    schedule 09.08.2018