Если команда безопасности права насчет части контроля доступа, зависит от того, какой контроль они хотят.
Ограниченное чтение
Наличие какого-либо контроля над тем, что может прочитать один разработчик, ограничено как для SVN, так и для любой DVCS. Даже если у вас есть центральный сервер SVN, обычно нет ограничений на чтение старых версий путей, для которых у вас есть разрешение. Таким образом, вы можете сбросить старую историю пересмотра за ревизией в локальное хранилище (hg subversion
, git svn
и многие другие инструменты работают именно так). В SVN нет ничего волшебного, что мешало бы кому-либо загружать каждую ревизию и распространять эти копии.
В конце концов, если вы не можете ограничить доступ к рабочим копиям на стороне пользователя, у вас вообще нет ограничений на чтение. Период.
Запрещено писать
Это другая игра, поскольку Mercurial позволяет вам устанавливать любое имя в качестве коммиттера, как вы хотите¹. Таким образом, вам нужно добавить некоторые механизмы на сервер, чтобы ни один разработчик не мог представить ревизии False-Flag, зафиксировав имя одного из разработчиков, и отправить эти ревизии на сервер. В то время как AFAIK Subversion сам устанавливает имя пользователя на сервере, сервер hg должен каким-то образом быть снабжен ловушкой для проверки имен пользователей для всех входящих наборов изменений.
¹ В Subversion также есть способ изменить имя коммитера, но вы должны включить ловушку pre-revprop на сервере, чтобы разрешить это.