Puisque cela n'a pas encore été entièrement dit dans les réponses précédentes. Je déteste ressusciter les fils de discussion zombifiés.
Étant donné que l'ajout de la prise en charge des permissions pour SVN devrait prendre en compte plusieurs systèmes d'exploitation et types de permission, NFS, POSIX, ARWED et RACF.
Cela rendrait le SVN trop lourd, pourrait entrer en conflit avec des types de permissions contradictoires comme NFS et POSIX, ou ouvrirait la voie à des exploits ou des vulnérabilités de sécurité.
Il existe quelques solutions de contournement. pre-commit, post-commit, start-commit sont les plus couramment utilisés, et font partie du système Subversion. Mais cela vous permettra de contrôler les permissions avec le langage de programmation de votre choix.
Le système que j'ai mis en place est ce que j'appelle un packager, qui valide les fichiers engagés de la copie de travail, puis analyse un fichier de métadonnées, qui liste les autorisations par défaut souhaitées pour les fichiers/dossiers, ainsi que les modifications que vous souhaitez leur apporter.
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
Il est également possible d'étendre ce système et de permettre des opérations telles que le déplacement automatique, le renommage, le marquage des révisions par type (alpha, beta, release candidate, release).
En ce qui concerne la prise en charge des clients pour l'extraction des fichiers de votre dépôt avec les autorisations qui y sont attachées. Il est préférable de créer un installateur de votre paquet et de le proposer comme ressource.
Imaginez que les gens configurent leurs dépôts avec un exécutable dedans avec les permissions Root:www-user 4777.