git clone с разными правами доступа к файлам
На нашем сервере находятся три (в действительности: тысячи) текстовых файла, которые хранятся в простом хранилище git: A.txt, B.txt, C.txt.
- Пользователь "admin" должен просматривать / редактировать их все.
- Пользователь "Foo" должен просматривать / редактировать "A.txt" и "B.txt", но ему не разрешено просматривать содержимое "C.txt".
- Пользователю "гость" разрешено только просматривать / редактировать "A.txt".
Все три пользователя должны иметь возможность клонировать репозиторий git с файлами, которые им разрешено редактировать.
Есть ли возможность сделать это с помощью git (... или mercurial)?
Идея: Могу ли я сделать два клона из чистого git-репозитория с функцией разреженного извлечения git для пользователей "Foo" и "guest", которые включают только те файлы, которые им разрешено видеть?
Любая другая (более быстрая) идея?
1 ответ
Вам следует:
- есть три ветви
- гость (только
A.txt
файлы) - пользователи (с файлами A и B.txt)
- админ (со всеми файлами)
- гость (только
Это означает частые слияния для обновления разных веток и распространения разных модификаций.
Кроме того, с помощью gitolite вы можете контролировать, кто что может тянуть / толкать (на уровне ветви), что означает:
- гость сможет только вытащить
guest
ветка. - пользователь foo сможет вытащить только
guest
филиал иusers
ветвь, в то время как в состоянии подтолкнутьusers
ветвь (или обе ветви, если вы хотите, чтобы пользователь обновлял содержимоеguest
ветка). - админ может тянуть / тянуть все ветки.