2012-05-03 2 views
2

Я пытаюсь реализовать Git в своем офисе. Поскольку запуск сервера apache на каждой машине для разработчиков невозможен, они не могут работать с клоном на своей машине. У нас есть сервер разработки с общим доступом NFS. Я планирую создать git-репозиторий и рабочее дерево на этом общем ресурсе NFS. Git управляется одним пользователем, поэтому одновременного нажатия не будет.Git реализация с nfs share

Мои вопросы

  1. Это хорошая практика?
  2. Как я могу управлять доступом пользователей?

ответ

1

Переходя сюда, чтобы убедиться, что я понимаю: общая рабочая область «рабочая зона», которую все монтируют поверх NFS и развивается при использовании своего браузера, направленного на удаленный экземпляр apache, они работают с одним и тем же набором файлов и выполните команды git против той же рабочей копии git. Если я до сих пор прав в своем понимании, это не похоже на хорошую идею.

Я бы рекомендовал вам предоставить каждому разработчику собственную рабочую область на сервере apache, а также свой собственный VirtualHost, чтобы они могли видеть свои независимые файлы. Теперь они могут работать независимо от других разработчиков. Каждый из этих наборов файлов будет git-клоном одного и того же репозитория (вероятно, где-то где-то). Это позволяет значительно упростить рабочий процесс для каждого разработчика, и нет никакого риска, что разработчики будут растоптать друг друга и передать другой код и т. Д.

Доступ пользователя, вы можете контролировать это через того, кому разрешено монтировать общий ресурс NFS.

+0

Это действительно путь. Каждый разработчик нуждается в своей рабочей области на сервере, чтобы он мог проверять свой код, не совершая или не делиться им с другими, и, конечно, не мешая другим людям. – ThiefMaster

+0

У каждого разработчика будет своя ветка. В этом случае, как разработчик может запускать команды git? Нужно ли предоставлять ssh доступ к каждому разработчику? Или можно запустить, указав путь ветви в общем ресурсе NFS. Если команда может быть запущена путем указания пути NFS, будет ли вести журнал пользователя, выполняющего фиксацию или какие-либо другие операции? – Samuel

+0

Работа в ветке по-прежнему требует рабочей области, и если у нее есть отдельные, то они могут передать ветку, если они захотят в этой точке. Что вы подразумеваете под веткой? – ctcherry

1

git работает над NFS, да, но он очень медленный по сравнению с локальным диском.

Наличие нескольких разработчиков, работающих с одним и тем же проверенным репо, является рецептом проблем.

Я установил репозиторий «вверх по течению» на сервере, который разработчики нажимают и извлекают, а затем каждый разработчик клонирует мастер-репо локально на своей рабочей станции и работает против этого.

+2

Призвать его «очень медленно», даже не начать описывать его. Ледниковое может быть лучшим прилагательным или, возможно, «измерено с использованием геологического масштаба времени». – Harvey

1

Вы побеждаете самую цель git i.e распределенного развития. Я бы рекомендовал вам создать что-то вроде Gitolite на центральном сервере, на котором хранится «официальный» репозиторий. Разработчики могут клонировать этот репозиторий и работать в своих локальных районах. Затем они могут вносить (хорошо протестированные) изменения в официальный репозиторий. С гитолитом вы можете иметь мелкозернистый контроль доступа и несколько других инструментов управления. Ваши процессы сборки и развертывания должны быть настроены таким образом, чтобы только изменения из официального репозитория могли быть перенесены в производство.

Смежные вопросы