PDA

Показать полную графическую версию : Git for Windows


zer66607
13-10-2016, 14:16
Приветствую!
Сразу прошу меня извинить если не правильно выбрал раздел для создания темы.

Я почитал про Git, почитал про SVN, в большинстве источников пишут, что git более предпочтителен так как SVN идеологически устарел. Раньше я использовал SVN, но на каждой машине был локальный репозитарий не синхронизирующийся с сервером и по сути SVN использовался больше для бекапов и отслеживания изменений внесенных пользователями (коммиты делал только я).
Итак, опишу ситуацию. В моём распоряжении имеется некоторое количество машин на которых развернут дистрибутив разрабатываемого нами ПО. ПО предназначено для управления различными устройствами (роботы, электродвигатели и т.д.), в связи с этим некоторые конфигурационные файлы и плагины могут отличаться в зависимости от набора устройств, плюс индивидуальных настроек каждого сервопривода. На этих компах производится отладка без среды разработчика, то бишь версии там релизные, программисты присылают изменения в виде скомпилированных библиотек и прочих необходимых файлов. Мне необходимо сделать так, чтобы всегда было понятно вносились ли какие-либо изменения пользователем со времени последнего обновления, а так же в случае если существует более новая версия можно было подтянуть её из репов.

В моём распоряжении имеется сервер на Windows Server 2008 R2. Я хочу развернуть репозитарий на сервере, чтобы программисты могли закоммитить туда обновления, а я мог бы потом на любую машину эти обновления из репов подтянуть. Соответственно у меня есть статический белый IP по которому я и программеры могут подключиться к серверу из любой сети, часть машин клиентских находится в локалке, а часть удаленно. Чтобы всё работало я так понимаю необходимо:

На сервере:
- настроить SSH сервер (открыть порт, создать пользователей)
- поставить Git
- создать там репозитарий

На клиентских машинах:
- настроить SSH
- установить Git
- подрубиться к удаленному репозитарию
- выгрузить из репов на рабочую машину необходимую конфигурацию программы

С настройкой мне более менее всё ясно, главный вопрос как организовать наиболее правильно сам репозитарий. Программа по сути у нас одна, но как я писал выше, может отличаться набором подключенных плагинов и содержанием конфигов, плюс еще пару тройку специфических файлов. Так вот, как лучше сделать, для каждой конфигурации делать свой отдельный репозитарий и соответственно тогда придется руками вносить туда изменения и потом коммитить и растаскивать на обновления клиентам? Собрать все конфигурации в одну монструозную версию и залить её в реп, но можно ли тогда сливать на каждый клиент не всё что есть в репе, а только необходимое для конкретной конфигурации?

Для примера приведу условное содержание двух трех конфигураций:
Конфигурация 1:
- База данных 1
- 3D модели
- Робот "тип1"
- Линейный двигатель
- Измеритель "тип1"
- Папка со сценариями работы 1
- Шаблоны отчетов
- Библиотеки
- Programm.exe
Конфигурация 2:
- База данных 2
- 3D модели
- Робот "Тип2"
- Измеритель "Тип2"
- Папка со сценариями работы 2
- Шаблоны отчетов
- Библиотеки
- Programm.exe
Как видно, конфигурации отличаются, но не очень сильно. У них общие модели, шаблоны, библиотеки и экзешник, но отличается набор устройств, базы данных и сценарии.
Как было бы наиболее логично организовать репозиторий в таком случае?




© OSzone.net 2001-2012