Настройка mercurial hg в BitrixEnv для Битрикс

8 Авг
2012

Все перечисленное в данной статье не претендует на истину в последней инстанции, и является компиляцией кучи советов собранных по различным сайтам в том числе и блога.

Итак преступим, если у нас BitrixEnv 3.0 то предварительно необходимо будет поставить меркуриал, в случае с четвертой версией он есть из коробки.

В статье подразумевается что вы работаете от пользователя root.

Часть первая, настраиваем nginx для работы с mercurial
vj /etc/nginx/bx/site_avaliable/hg.conf

у меня получился файл такого содержания:

server
{
listen 80;
server_name hg.mydomain.com;
client_max_body_size 128M;
location /bitrix
{
proxy_pass 127.0.0.1:8000;
auth_basic «Restricted»;
auth_basic_user_file /etc/nginx/hg.pass;
access_log /var/log/nginx/hg.mydomain.com.access.log main;
error_log /var/log/nginx/hg.mydomain.com.error.log info;
}
}


mydomain.com поменяйте на нужное вам имя домена.
127.0.0.1:8000 — ip и порт на котором у нас будет запущен hg сервер.
/etc/nginx/hg.pass — файл содержащий имена пользователей и паролей для доступа к репозиторию.

затем добавляем пользователей имеющих доступ к репозиторию, для этого воспользуемся утилитой htpasswd идущей в комплекте с apache

htpasswd -bc /etc/nginx/hg.pass myuser mypassword

После добавления пользователей перезапускаем nginx
sudo /etc/init.d/nginx restart

C настройкой nginx закончили.

Следующий этап настройка самого репозитория,

Я настраивал репозиторий для виртуального хоста по умолчанию расположенного в /home/bitrix/www/
Если вам нужен репозиторий для другого хоста, используйте свой путь.

В этом каталоге у меня уже был установлен БУС, переходим в нужный нам каталог

cd /home/bitrix/www
и создаем репозиторий командой
hg init
после этой команды создастся папка .hg содержащая служебную информацию.
переходим в нее
cd .hg
и создаем файлы конфигурации репозитория
vi hgrc
с таким содержимым:

[ui]
username = YouName <Youemail@youdomain.com.>
[web]
allow_push = *
push_ssl = false
contact = YouName
description = YouDecription
allow_archive = gz
style = gitweb

В данном файле мы разрешаем всем проталкивать изменения, так как авторизация у нас проходит на уровне nginx.

теперь создадим еще один конфигурационный файл для hg сервера:
vi hgweb.config

[web] //секция параметров веб сервера
allow_push = * //разрешаем всем “поднимать” изменения (контроль доступа идет на уровне прокси)
push_ssl = false //не используем ssl (шифрование идет на уровне прокси)
[paths] //секция “путей”
bitrix=/home/bitrix/www


собственно в секции [paths] описываются ваши репозитории, и пути к ним
в параметрах nginx это описывается как location /bitrix
соответственно добавляя location в nginx и строку в секция [paths] вы можете создать произвольное количество репозиториев.

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

cd /home/bitrix/www

и создаем файл .hgignore

vi .hgignore

у меня данный файл имеет такое содержание:

syntax:glob
*.gz
*.swf
*.tmp*
*.swp
robots.txt
1c_catalog/*
bitrix/activities/bitrix/*
bitrix/admin/*
bitrix/backup/*
bitrix/cache/*
bitrix/components/bitrix/*
bitrix/gadgets/bitrix/*
bitrix/controller_log/*
bitrix/image_uploader/*
bitrix/images/*
bitrix/js/*
bitrix/managed_cache/*
bitrix/stack_cache/*
bitrix/modules/*
bitrix/otp/*
bitrix/php_interface/*
bitrix/sounds
bitrix/template/
bitrix/themes
bitrix/tmp
bitrix/tools
bitrix/wizards/bitrix
bitrix/[^/]*\.php$
upload/*
upload/resize_cache/*


Соответственно мы не храним в репозитории ядро Битрикс так как его все равно изменять нельзя, но если очень хочется то нужные вам папки вы можете исключить из данного конфига и добавить в репозиторий.

Осталось выполнить еще немного действий, а именно, сначала всем файлам в папке /home/bitrix/www мы поменяем владельца на пользователя bitrix
chown -R bitrix:bitrix /home/bitrix/www/*

затем добавим файлы в репозиторий:
sudo -u bitrix hg add

Ну и сделаем первый коммит в нашем репозитории:

sudo -u bitrix hg ci -m «Init»

После этого нам осталось только запустить сервер hg командой

sudo -u bitrix hg serve -d —webdir-conf /home/bitrix/www/.hg/hgweb.config —address 127.0.0.1 —port 8000 —encoding utf8

У меня используется кодировка utf-8 в случае если вы используете другую кодировку вам нужно поменять параметр —encoding

Вот собственно и все, можно пользоваться, ваш репозиторий имеет адрес hg.mydomain.com/bitrix, если конечно вы прописали нужное доменное имя в настройках DNS.

Если что то непонятно могу ответить на вопросы в комментах, в случае если повезет получить инвайт, это моя попытка номер три.
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх