@Stephen Bailey
To complete your answer, you can also delegate the user rights to the project manager, through a plain text file in your repository.
To do that, you setup your svn database with a default authz file containing the following
###########################################################################
# The content of this file always precedes the content of the
# $REPOS/admin/acl_descriptions.txt file.
# It describes the immutable permissions on main folders.
###########################################################################
[groups]
svnadmins = xxx,yyy,....
[/]
@svnadmins = rw
* = r
[/admin]
@svnadmins = rw
@projadmins = r
* =
[/admin/acl_descriptions.txt]
@projadmins = rw
This default authz authorize the svn admins to modif a plain visible text file within your svn repo,
called '/admin/acl_descriptions.txt', in which the svn admins or project managers will modify and register the users.
Then you setup a pre-commit hook which will detect if the revision is composed of that file (and only that file)
If it is, this hook scripts will validate the content of your plain text file and check if each line is compliant with the svn right syntax.
Then a post-commit hook will update \conf\authz file with the concatenation of :
- the TEMPLATE authz file presented above
- the plain text file '/admin/acl_descriptions.txt'
The first iteration is done by the svn admin, he adds:
[groups]
projadmins = zzzz
He commits his modification, and that updates the authz file.
Then the project manager 'zzzz' can add, remove or declare any group of users and any users he wants.
He commits the file and the authz file is updated.
That way, the svn admin does not have to follow any and all users for all svn repos.