I'm not an SVN expert by any means, and Daniel's answer makes sense, so I might need an SVN/WebDAV expert to tell me why this wouldn't work:
This page documents the WebDAV methods used by various SVN commands. And it appears that you could "lock" commit
, rm
, copy
, mv
, and mkdir
by denying a user permission to use the MKACTIVITY
method. This would still allow diff
, merge
, checkout
, ls
, cat
, etc.
So then all you would need to do is set up, in your Apache config, a <Limit>
or a <LimitExcept>
directive inside of a <Location>
directive corresponding to the trunk directory. I haven't tested this out, but it would look something like:
<Location /repo/myproject/trunk>
...
AuthType Digest
AuthName "Repository Admins Only"
AuthDigestProvider file
AuthUserFile "E:/Sites/.htpasswd-admin"
<Limit MKACTIVITY>
Require valid-user
</Limit>
...
</Location>
And you should be able to nest that inside of your repository's main <Location>
directive. This is all assuming you're using HTTPS to access your repository.