Развертывание глобального Git репозитория
Система контроля версий 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
-
Имя пользования: логин
-
Пароль: пароль
После сохранения параметров подключения система отобразит список изменений, выполненных в репозитории.