Я не эксперт СВН любыми средствами, и ответ Даниила имеет смысл, так что я, возможно, нужен специалист SVN/WebDAV, чтобы сказать мне, почему это не будет работать:
This page описывает методы, используемые WebDAV различными командами SVN. И кажется, что вы можете «заблокировать» commit
, rm
, copy
, mv
и mkdir
, отказавшись от разрешения пользователя на использование метода MKACTIVITY
. Это будет по-прежнему позволяет diff
, merge
, checkout
, ls
, cat
и т.д.
Итак все, что вам нужно будет сделать, это создать в вашей Apache конфигурации, <Limit>
или <LimitExcept>
директивы внутри <Location>
директивы, соответствующей каталог соединительных линий. Я не проверял это, но это будет выглядеть примерно так:
<Location /repo/myproject/trunk>
...
AuthType Digest
AuthName "Repository Admins Only"
AuthDigestProvider file
AuthUserFile "E:/Sites/.htpasswd-admin"
<Limit MKACTIVITY>
Require valid-user
</Limit>
...
</Location>
И вы должны быть в состоянии гнезда, что внутри основного <Location>
директивы вашего хранилища. Все это предполагает, что вы используете HTTPS для доступа к вашему репозиторию.
Я думаю, что это сработает (мы используем крюк предварительной фиксации, чтобы гарантировать, что пустые комментарии для проверки запрещены), однако, будьте готовы предупредить своих пользователей об этом, потому что сообщения об ошибках, которые вы пытаетесь проверить, не очевидны , Я не думаю, что есть возможность добавить настраиваемое сообщение об ошибке, если ошибка перехвата завершена. –
@ the_mandrill: Все, что вы пишете в STDERR в крючках, должно быть видимым конечному пользователю. –