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 ветка).
  • админ может тянуть / тянуть все ветки.
Другие вопросы по тегам