Безопасно ли нескольким пользователям использовать репозиторий Git на общем сетевом диске? - PullRequest
6 голосов
/ 27 марта 2012

Мы используем Eclipse (с плагином eGit), и я хочу разместить репо на общем сетевом диске, к которому у нескольких пользователей есть право записи.

Могут ли все пользователи указывать на одно и то же исходное хранилище (на общем диске), или было бы лучше для каждого пользователя клонировать хранилище на свой локальный диск, работать с этой локальной версией и при необходимости вносить изменения в сетевой оригинал?

Eclipse, кажется, позволяет вам "импортировать" (в ваше рабочее пространство Eclipse) проект из репозитория Git, но этот импортированный проект, похоже, не отслеживается Git, пока вы не выберете "Поделиться проектом". На этом этапе рабочий каталог становится каталогом рабочего каталога репо для этого проекта. Предположительно, у всех пользователей, разделяющих этот проект, будет один и тот же рабочий каталог, т. Е. Репо на общем диске.

Мне непонятно, как это повлияет, но это не очень хорошая идея, при первом осмотре! Как он будет решать основные проблемы, например, когда 2 пользователя пытаются одновременно открыть один и тот же файл для редактирования?

Спасибо.

Ответы [ 2 ]

7 голосов
/ 27 марта 2012

Лучше, чтобы у каждого человека был свой репо.

Клонируйте текущий репозиторий в виде чистого репозитория и поместите его на сетевой диск.

Например,

git clone --bare /path/to/current/cool_project cool_project.git  

Переместите файл cool_project.git на сетевой диск и получитевсем клонировать от этого.У голых репозиториев нет рабочего каталога, отсюда и название, поэтому их безопасно пересылать.

См. Главу 4 книги Git Pro - Git на сервере ив частности глава 4.2 для более подробной информации.

3 голосов
/ 27 марта 2012

Исходя из этого, вы говорите о том, что каждый пользователь указывает на репозиторий git по сети и не имеет отдельных репозиториев git на компьютерах каждого разработчика, а затем отправляет его в «центральный» репозиторий.Если я правильно прочитал ваш вопрос, это не лучший способ воспользоваться тем, что предлагает git.Git - это распределенная система контроля версий, поэтому у каждого должен быть свой собственный репозиторий и помещать изменения в центральный репозиторий, из которого вы строите свой CI.

...