Какой контроль версий разрешает права доступа на уровне файлов? - PullRequest
2 голосов
/ 25 декабря 2011

Я использовал SVN и раньше, и потому что у меня есть более крупный проект, над которым у меня часто меняются разработчики, я хочу определить доступ к файлу на уровне пакета или файла.Например, предоставление полного доступа к базовым классам, но в некоторых случаях разрешать чтение и фиксацию только для специальных пользователей.

Существует ли система контроля версий, которая бы позволяла это, например GIT, CVS или SVN, или естьработать вокруг, чтобы сделать это?У меня нет собственного Сервера, но я использую Codesion в качестве хост-службы.

1 Ответ

4 голосов
/ 25 декабря 2011

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 доступ к коду для приобретенных ими функций.

...