2010-04-05 4 views
7

Мы исходим из фона subversion, где у нас есть менеджер QA, который дает права на передачу в центральный репозиторий, как только он подтвердил, что все действия QC выполнены.Управление доступом hg к центральному репозиторию

Я и пара коллег начинают использовать mercurial, и мы хотим иметь общий репозиторий, который будет содержать наши изменения QC-ed. Каждый из разработчиков hg клонирует репозиторий и возвращает его изменения в общий репозиторий. Я прочитал учебник по инициализации HG и просмотрел красную книгу, но не смог найти, как управлять тем, кому разрешено вводить изменения в общий репозиторий.

Как наша существующая модель управляемых QA-менеджеров переводится в «центральный» хранилище ртути?

+0

Как вы обслуживаете хранилища? –

+1

http://mercurial.selenic.com/wiki/PublishingRepositories#Allowing_Push –

ответ

0

serverfault.com имеет соответствующий question и ссылки на страницу Publishing Repositories Mercurial Wiki. Первый показывает, как настроить доступ к каждому репозиторию при использовании hgweb на сервере. У меня возникает ощущение, что вы используете ssh, который на вики-странице называет «приватным», и поэтому я склонен полагать, что вам придется вернуться к управлению доступом к файловой системе, то есть сделать все файлы в репозитории принадлежащими к группе «коммивоятели», дают членам группы права на запись и все остальные читают/только.

+0

ssh отлично работает с директивами контроля доступа _IF_ у каждого есть своя собственная учетная запись ssh. Только если все делят учетную запись ssh, вам нужно получить трюк о выбранном ключом доступом через что-то вроде hg-ssh или (yuck) mercurial-server. –

2

Комментарий HenriW, спрашивающий, как вы обслуживаете хранилища, является правильным вопросом. Как настроить аутентификацию полностью зависит от того, как вы обслуживаете свое репо (HTTP через Apache, HTTP через hg-serve, ssh и т. Д.). Механизм транспорта обеспечивает аутентификацию, а затем меркуриальное использование, которое с помощью команд из ссылки г-на Кэт (бесполезно для себя и для себя) для управления доступом.

Поскольку вы не указали, как вы обслуживаете репо, это, вероятно, было бы легко настроить (вы бы вспомнили, как упоминать о hassle для apache или ssh setup :). Поэтому я буду уродливым из этих двух:

Если вы используете hg serve, то у вас нет настройки аутентификации. Для обеспечения аутентификации вам нужно использовать apache, lighttp или nginx перед hgweb или hgwebdir. До тех пор, пока вы не допустите опции allow_ * и deny_ *, строго все или никто.

Если вы используете SSH то вы уже получаете вашу аутентификацию Фромм SSH (и, возможно, ваша ОС), так что вы можете использовать allow_ * и * deny_ директивы (и контроля доступа файловой системы, если вы хотите как).

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