2013-06-08 2 views
6

Есть ли какая-либо система управления распределенной версией, способная предоставлять доступ для чтения/записи пользователям с уровнем детализации подпапки?Управление распределенной версией и управление доступом

i.e., если я хочу предоставить доступ к дереву /foo для UserA и только для /foo/bar для UserB?

UPD Насколько я понимаю, это невозможно для Git (он рассматривает только хранилище в целом). Как насчет Базара и Меркуриала?

UPD все еще ищет лучший ответ.

+0

Я не достаточно знаком с распределенным VCS, но я подозреваю, что вы получите более качественные ответы, если вы определите, имеете ли вы «доступ на чтение» или «доступ на запись». – maxim1000

+0

@ maxim1000, я имел в виду как контроль доступа на чтение, так и запись. – fithu

+1

Не совсем ответ, но если вы не найдете решения с DVCS, вы можете попытаться предоставить репозиторий SVN конкретным правам на чтение и запись и использовать различные мосты для DVCS. – maxim1000

ответ

-1

EDIT: Только что просмотрел комментарии, OP ищет доступ как для чтения, так и для отвода ответа.

Нет, это не невозможно для Git. Проект Gitolite очень зрелый и обеспечил мелкомасштабные разрешения доступа (разрешения репо/филиал/каталог/уровень файлов) в течение многих лет.

конкретный пример на ограничение изменений в один файл находится здесь: http://gitolite.com/gitolite/vref.html#NAME

Несколько простых примеров here и более подробная документация по определению правил также available here.

Edit: Добавлена ​​еще одна ссылка

+0

Хотя, возможно, кто-то читает доступ только к поддереву репозитория Git. Это было частью вопроса. – Novelocrat

+0

@Novelocrat, gitolite * жестяная банка * можно *! [Отметьте это] (http://gitolite.com/gitolite/vref.html#NAME). В нем есть пример, чтобы конкретно отключить нажатие изменений на один файл. – Subhas

+0

Это ограничение на толкает (пишет), а не на чтение. Прочтите комментарий OP. – Novelocrat

0

Ограждение записи может быть добавлен в Mercurial, Subversion или мерзавец с помощью SCM-Manager и Path Writeprotect Plugin. Вы можете определить путь, а также пользователей или групп, имеющих доступ на запись.

+0

Вопрос был о защите чтения. – fithu

+0

Чтение защиты не будет работать для git и mercurial, поскольку оно должно всегда клонировать полный репозиторий.Возможно ли, что вы работаете с подрепозитором вместо папки? – DaSilva2010

+0

В противном случае Subversion в сочетании с Apache может сделать то, что вы хотите, установив разрешения доступа в конфигурации Apache. [http://svnbook.red-bean.com/nightly/en/svn.serverconfig.httpd.html#svn.serverconfig.httpd.authz.perdir.ex-3] – DaSilva2010

0

Как отмечают в комментарии @ maxim1000, наилучшим способом достижения этого может быть запуск сервера Subversion, который может выполнять мелкозернистый контроль доступа как для чтения, так и для записи на основе каждого пути и каждой ветки , Если пользователи хотят использовать клиент DVCS, они могут затем использовать git svn или hg svn для импорта частей репозитория, к которым у них есть доступ в DVCS, и взаимодействовать соответственно. Также должно быть возможно, чтобы кто-то с более высоким доступом сменил изменения в поддереве от кого-то с более низким доступом, не теряя отличного инструмента для слияния, который предоставляет реализация DVCS.

Смежные вопросы