CVS ужасен (для сравнения), и вы не должны трогать вещи.Новые DVCS, такие как Git, Hg, Bzr и т. Д., Не позволяют устанавливать разрешения на чтение более точно, чем на уровне всего хранилища.(Разрешения на запись довольно просты.)
Вы можете установить детальные разрешения на чтение / запись, используя SVN (см. book ).Помните, что отказ read в доступе к частям хранилища - это кроличья нора.Я рекомендую разделить проект на отдельные (в основном автономные) модули и предоставить или запретить доступ к каждому модулю в целом.Например,
project/ [world readable, writable by some]
moduleA/ [readable/writable by "team A"]
moduleB/ [readable/writable by "team B"]
Вы также можете сделать шаг назад и спросить себя, зачем вам нужен детальный доступ.Если вы беспокоитесь о том, что разработчики могут скрыться с вашим исходным кодом, у вас есть серьезные проблемы, которые невозможно решить с помощью технологий.Если вас беспокоят пароли администратора в вашем хранилище, удалите пароли администратора.Я бы сказал, что основной вариант использования этого вида контроля доступа - предоставить клиентам SVN доступ к коду для приобретенных ими функций.