У меня есть локальный репозиторий git, который находится вверх по течению от другого локального репозитория git. Когда я выхожу из восходящего репозитория в нисходящий поток, я хочу, чтобы разрешения файла Windows на определенный файл сохранялись после обновления. Я попытался использовать следующее решение: https://github.com/git/git/blob/master/contrib/hooks/setgitperms.perl#L78
Но я считаю, что он основан на модели безопасности UNIX и не сохраняет мои разрешения. Как я могу это сделать? Я рассматривал возможность использования сценария python с модулем win32security (поскольку я не знаком с perl), но не смог найти подходящую документацию для него. У меня очень мало опыта в области безопасности Windows, кроме того, что вы устанавливаете вручную разрешения.
Решение оказалось довольно простым. Мне просто нужно было установить post-checkout и -merge hooks, которые запускали скрипт python для настройки прав доступа к файлам. Я получил информацию о win32security отсюда, чтобы работать с ним, и использовал os.getcwd() (который установлен в корне git repo при запуске), чтобы найти правильный файл.
Вы можете настроить git config для игнорирования различий в разрешениях файлов с помощью
git config --global core.fileMode false
Стоит дать ему попробовать, я думаю.