Развертывание глобального Git репозитория

  • Создана: 04.04.2017
  • Обновлена: 30.01.2023

Система контроля версий Git относится к классу респределенных (DCVS), то есть не имеющих центрального (глобального) репозитория. Если ваш процесс разработки требует наличия выделенного репозитория, в котором будет располагаться кодовая база, например, для очередной версии или фичи, то вы можете организовать глобальный репозиторий. Например, инструментарий continuous integration для очередной сборки и запуска тестов будет собирать приложение из глобального репозитория.


Сначала вам необходимо создать глобальный репозиторий, для этого необходимо установить Git, создать каталог для репозитория, например c:\\git_repository\\bare, перейти в него и выполнить команды:

git --bare init
git update-server-info

параметр "bare" говорит о том, что в репозитории не будет своей рабочей копии (файлов, обычно содержащихся в скрытом каталоге .git), то есть все изменения в такой репозиторий можно будет выполнять только из других (локальных) репозиториев разработчиков.

Для того, чтобы репозиторий стал доступен из DEVPROM, а также другим разработчикам необходимо организовать к нему удаленный доступ по протоколу HTTP/HTTPS. Сделать это можно при помощи веб-сервера Apache, входящего в дистрибутив DEVPROM. Необходимо в каталог C:\\DEVPROM\\apache\\conf поместить файл git.conf со следующим содержимым:

LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_lock_module modules/mod_dav_lock.so

DavLockDB "davlock/gitlock"
PassEnv SERVER_ROOT

<VirtualHost *:8080>
ServerName saturn
DocumentRoot ${SERVER_ROOT}/git

<Location />
   DAV On
   Options +Indexes +FollowSymLinks +ExecCGI
   
   Allow from all
   Order deny,allow

   AuthType Basic 
   AuthName "DEVPROM Git Repository" 
   AuthUserFile ${SERVER_ROOT}/git/passwd

   <Limit GET PUSH PUT POST DELETE PROPPATCH COPY MOVE LOCK UNLOCK>
   	Require valid-user
   </Limit>
</Location>

</VirtualHost>

Файл c:\\git_repository\\passwd создается при помощи утилиты htpasswd, входящей в дистрибутив Apache.

В файле C:\\DEVPROM\\apache\\conf\\httpd.conf нужно включить использование файла git.conf:

Listen 8080
Include conf/git.conf

Проверить удаленный доступ по протоколу HTTP к глобальному Git-репозиторию можно по ссылке http://localhost:8080


Теперь добавим в репозиторий первый файл, чтобы он не был пустым. Для этого создадим локальный репозиторий и добавим в него файл, а затем синхронизируем изменения локального и удаленного репозитория:

git clone http://localhost:8080 remote
type nul readme.txt copy readme.txt +,,
git add *
git commit -m "dummy file"
git push origin master

Теперь репозиторий готов для подключения к проекту в DEVPROM. Если возникают проблемы с выполнением операций над удаленным репозиторием, то установите переменную окружения: set GIT_CURL_VERBOSE=1


Подключение к Devprom

Для пользователей Linux/Unix необходимо проверить, что по пути, на который указывается константа SERVER_ROOT (определенная в settings_server.php, отображаемая также в разделе администрирования на вкладке "Настройки"), возможно создание каталога из-под пользователя, под которым исполняется Apache.Для подключения проекта к вновь созданному репозиторию необходимо на вкладе "Файлы" добавить подключение, указав:

  • Система контроля версий: Git

  • Путь к репозиторию: http://localhost:8080

  • Путь к файлам: master

  • Имя пользования: логин

  • Пароль: пароль

После сохранения параметров подключения система отобразит список изменений, выполненных в репозитории.

Решения для поддержки процессов разработки Devprom Software