2010: для Gitolite 2 (возможно, изменился для Gitolite 3)
Нет (это означает, что необходимо создать выделенную ветку с нужным содержимым).
Как автор из самого gitolite: :
Я являюсь автором проекта под названием gitolite, который отлично справляется с управлением доступом на уровне филиала для нескольких репозиториев git на центральном сервере.Моя целевая «маркет» это именно корпоративные пользователи git.
До сих пор я не видел ситуации, когда доступ для чтения должен быть ограничен частями репо (git не может этого сделать в любом случае).
[хорошо редкая проверка может помочь, но в любом случае это нелегко)
Доступ на запись часто нужно ограничивать, и гитолитможет позволить вам ограничить:
- как по имени ветви (например, только лидер QA может вставить серию фиксации в ветку "QA-done")
- или по имени файла (например,Только руководитель группы может вносить изменения в Makefile и файлы в
src/very-important-and-critical-module
).
См. раздел " безопасность, контроль доступа и аудит ", и вот пример запись доступ:
Файл conf/example.conf
имеет весь подробный синтаксис:
repo foo
RW+ = lead_dev # rule 1
RW = dev1 dev2 dev3 dev4 # rule 2
RW NAME/ = lead_dev # rule 3
RW NAME/doc/ = dev1 dev2 # rule 4
RW NAME/src/ = dev1 dev2 dev3 dev4 # rule 5
каждый файл, к которому относится нажатие коммитов, проверяется на соответствие этим правилам.
- lead_dev может отправлять изменения в любые файлы,
- dev1 / 2 может отправлять изменения в файлы в «
doc/
» и «src/
» (но не на верхнем уровне *)1055 *), - и dev3 / 4 могут вносить изменения только в файлы в "
src/
".
При этом остается сложным вопрос, как описывает ОП:
как создать новую ветку только с некоторыми выбранными файлами и удалить предыдущие коммиты, чтобы графический дизайнер не мог получить к ним доступ, а видеть только выбранные послеклон?
Общий принцип:
создать ветвь graph_designer в той точке истории, где эти файлы отсутствовали .
Оттуда, два варианта:
- либо реорганизуют ваши текущие коммиты (
git rebase --interactive
), чтобы получить первый с только dir2
файлами(и затем фиксирует влияние на любой другой каталог) - или, если первый выбор представляет слишком много работы (или не представляется возможным, потому что эти коммиты уже были переданы и извлечены в других репозиториях), просто скопируйте и добавьтесоответствующие файлы в этой новой ветке.
Это означает, что у этих файлов нет прошлой истории, но им может не понадобиться эта история с самого начала.
То, что 'graph_designer
' будет единственной веткой, разрешенной для клонирования, и не будет содержать историю с несанкционированными файлами.