Так как это еще не было полностью сказано в предыдущих ответах. Но я ненавижу воскрешать зомбированные темы.
Поскольку добавление поддержки разрешений для SVN должно включать несколько ОС и типов разрешений, NFS, POSIX, ARWED и RACF
Это может сделать SVN раздутым, возможно конфликтовать с конфликтующими типами разрешений, такими как NFS и POSIX, или открыть возможные уязвимости эксплойтов / безопасности.
Есть несколько обходных путей.
pre-commit, post-commit, start-commit - наиболее часто используемые и являются частью системы Subversion.
Но позволит вам контролировать права доступа с любым языком программирования, который вам нравится.
Я реализовал систему, которую я называю упаковщиком, которая проверяет подтвержденные файлы рабочей копии, затем анализирует файл метаданных, в котором перечислены стандартные разрешения, требуемые для файлов / папок, и любые изменения в них, которые вы также желаете .
Owner, Group, Folders, Files
default: <user> www-user 750 640
/path/to/file: <user> non-www 770 770
/path/to/file2: <user> <user> 700 700
Вы также можете расширить это и разрешить такие вещи, как автоматическое перемещение, переименование их, пометка ревизий по типам, таким как альфа, бета, версия-кандидат, версия
Что касается поддержки клиентов для извлечения файлов репозитория с прикрепленными к ним разрешениями. Вам лучше заняться созданием установщика вашего пакета и предложением его в качестве ресурса.
Представьте, что люди устанавливают свои репозитории с исполняемым файлом, в котором установлены права root: www-user 4777