Гитолитские разрешения на ветки

Я действительно в растерянности. Я прочитал немало примеров и попробовал все. Самые основные из них работают нормально, но в любое время, когда я пытаюсь перейти к чему-то более сложному, все разваливается (даже когда я непосредственно копирую пример). Кроме того, для записи я на gitolite версии 3, как показано спамом сервера:

    this is [email protected] running gitolite3 v3.1-2-g3eefc06 on git 1.7.9.5         

Все это говорит о том, что я пытаюсь выполнить (Я ДУМАЮ), относительно просто. У меня есть группа младших разработчиков [@scrubs], и я только хочу, чтобы они создавали и фиксировали новые ветки и могли читать/вытаскивать мастер. Таким образом, я могу просмотреть их код, прежде чем он будет объединен.

У меня есть группа старших разработчиков [@vets], что я хочу иметь свободное владение.

Мой конфигурационный файл выглядит следующим образом:

     @scrubs         = al ted matthew
     @vets           = kevin will guy

     @offlimitbranches = master$

     repo    gitolite-admin
             RW+     =   @vets matthew

     repo    dawebsite
             RW+                     =   @vets
             -   @offlimitbranches   =   @scrubs
             RW+                     =   @scrubs
             R   @offlimitbranches   =   @scrubs
             R                       =   daemon
             option deny-rules = 1

     dawebsite "Owner"               = "This is THE site"

Я заметил, что ничего не работало для отказа, пока я не добавил:

    option deny-rules = 1

о котором, я думаю, я нашел в одном из 20 примеров (прикосновение разглагольства прощает разочарование.

С помощью этой текущей настройки ветеринары могут делать что угодно, как ожидалось.

Скрабы не могут ни тянуть, ни толкать мастер (и я думаю, что, поскольку он захватывает первое правило, это может сравниться?). Скрабы также не могут тянуть или нажимать на любую ветвь немастера, а также не нажимать вновь созданные ветки. Каждая попытка возвращает одно и то же сообщение "FATAL: [R/W] любой dawebsite matthew DENIED by refs/heads/master $"

Я пробовал использовать master, master $, @offlimitbranches и даже refs/heads/master без всяких проблем для ссылки ref.

Если кто-то может помочь пролить свет на это для меня, я был бы весьма благодарен.

Update **

Играя с вещами, которые я заметил, если я удалю матовый из группы скрабов и попытаюсь манипулировать им напрямую с помощью

    -       master$         =   matthew
    RW+                     =   matthew

если он переместится в новую ветку и попробовал следующее: (спасибо VonC за то, что они нажимают на журналы)

git pull origin newBranch
git push origin newBranch

каждый возвращает ошибку

PULL:

ARGV=matthew    SOC=git-upload-pack 'dawebsite.git'     FROM=172.24.1.198
access(dawebsite, matthew, R, 'any'),-> R any dawebsite matthew DENIED by refs/heads/master$
trigger,Writable,access_1,ACCESS_1,dawebsite,matthew,R,any,R any dawebsite,matthew DENIED by refs/heads/master$
R any dawebsite matthew DENIED by refs/heads/master$<<newline>>(or you mis-spelled the reponame)

PUSH:

ARGV=matthew    SOC=git-receive-pack 'dawebsite.git'    FROM=172.24.1.198
access(dawebsite, matthew, W, 'any'),-> W any medehrdev matthew DENIED by refs/heads/master$
trigger,Writable,access_1,ACCESS_1,dawebsite,matthew,W,any,W any dawebsite matthew DENIED by refs/heads/master$
W any dawebsite matthew DENIED by refs/heads/master$<<newline>>(or you mis-spelled the reponame)

Кажется, что все мои ветки совпадают с мастером ref $, потому что все они порождены мастером?

Ответ 1

Мой конфигуратор, который сейчас работает:

@gatekeepers = ustimenko
@developers  = ustimenko user1 user2
@deployers   = puppet

@project     = repo1
@project     = cakephp

repo @project
    RW+                 = @gatekeepers  
    R   master develop  = @developers
    -   master develop  = @developers
    RW+                 = @developers
    R                   = @deployers

  • У гейткиперов есть полный доступ.
  • Разработчики могут читать мастера и развивать ветки, а затем они отрицают другие действия там.
  • Разработчики могут делать все остальное.
  • Deployers могут читать все.

Ответ 2

Хм, я посмотрел в документации. И попробовал это здесь.

@anything - для группы пользователей или других групп. То, что вы пытаетесь там, не правильно. Вы не можете использовать оператор "@" как знак переменной. Документация групп

repo    dawebsite
    RW+                 =   @vets
    -   branch1         =   @scrubs
    RW+                 =   @scrubs
    R   branch1         =   @scrubs
    R                   =   daemon
    option deny-rules = 1

Гитолит разрешения