Git: Контроль доступа? Как это сделать на практике - PullRequest
7 голосов
/ 10 октября 2011

как защитить GIT-репозиторий полного (java) -приложения от того, чтобы разработчик получил доступ ко всему исходному коду в репозитории. Я знаю, что GIT - это распределенный контроль версий, где разработчик обычно «загружает / выбирает» полный (!) Репозиторий.

Мои вопросы:

  1. Как включить "модули / автономные части" в git? Например, имея модуль «уровень оплаты» и «уровень базы данных» и «уровень обработки» и т. Д. Все абстрагируется через API / интерфейсы. Должен ли я установить отдельный репозиторий git для всех этих модулей?

  2. Есть ли способ иметь один большой репозиторий в GIT, но как-то ограничить доступ по пути? (Клиент должен получать только те файлы, к которым ему предоставлен доступ)

  3. Есть ли способ иметь один большой репозиторий в GIT, но как-то ограничить доступ с помощью Branch / Tags? (Клиент должен получать только те файлы, к которым ему предоставлен доступ)

  4. На всякий случай, кто-то тоже об этом знает: есть ли в eclipse способ выгрузить контент из нескольких GIT-репозиториев в один проект, а также (наоборот) зафиксировать код внутри одного проекта Eclipse в нескольких разных GIT-репозиториях (на основе имен пакетов / путей или в контекстном меню)?

Большое спасибо Маркус!

Ответы [ 3 ]

4 голосов
/ 10 октября 2011
  1. Вам придется разделить код на несколько репозиториев git, если вы хотите дифференциальное управление.Вы не можете управлять ветвями или чем-то еще.Git загружает весь репо.Period.

  2. Вы можете найти в git-модулях механизм, упрощающий работу с вещами, созданными из нескольких репозиториев git.

2 голосов
/ 10 октября 2011

1) и 4) во многом зависит ваша строительная среда.В git вы пытаетесь иметь отдельные репозитории на модули, но если настройка исходного дерева становится болезненной, вы можете использовать подмодули git (хотя их не так много людей) или инструмент репо, используемый проектом Android.Это позволяет вам иметь «зонтичный» проект, состоящий из большего количества подпроектов.Не уверен, стоит ли это всего лишь нескольких компонентов.Только одно git-репо может иметь больше смысла.

Для вопросов 2) и 3):

Для доступа я бы порекомендовал, чтобы каждая подгруппа имела свой собственный форк (репозиторий) и кого-топроверяет, что они отправляют в репозиторий интеграции.Если вам не нравится такой подход, вы можете использовать ловушки git-сервера для принудительного применения политик написания сценариев.

В этом случае ловушка может проверять, кто нажимает, и путь или refspec (ветвь) для некоторого файла конфигурации, описывающегополитика.Это задокументировано здесь:

https://git -scm.com / book / en / v2 / Настройка-Git-An-Example-Git-Enforced-Policy

0 голосов
/ 10 октября 2011

1).Посмотрите на подмодули Git http://linux.die.net/man/1/git-submodule

2,3).Посмотрите на Gitolite https://github.com/sitaramc/gitolite/blob/pu/doc/gitolite.conf.mkd

4).Я не думаю, что какие-либо плагины eclipse-git позволяют это.Однако вы можете использовать внешний клиент / клиент командной строки для достижения того, чего вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...