Сначала следует добавить все необходимые пакеты
1) Установить httpd:
sudo yum install httpdдобавить его в автозапуск:
sudo chkconfig httpd onи запустить:
sudo service httpd start2) Установить модуль WSGI для Apache (модуль для работы с Python):
sudo yum install mod_wsgi3) Установить пакет Mercurial:
sudo yum install mercurialПереходим к настройке репозитория.
4) Создать пользователя hg:
sudo useradd --system hg5) Создать директорию от имени hg, в которой будут создаваться сами репозитории:
sudo -u hg mkdir -p /var/hg/repoи директорию для virtual-host:
sudo -u hg mkdir -p /var/hg/www6) Создать первый репозиторий (остальные, соответственно, по образу и подобию):
sudo -u hg hg init /var/hg/repo/ossТестируем новый репозиторий.
Создать тестовый файл:
echo test > testВыполнить проверку статуса пакетов в репозитории:
hg statusКорректный результат:
? test
Добавить данный файл в репозиторий:
hg add
Повторно выполнить проверку статуса файлов в репозитории:
hg statusКорректный результат:
A test
Коммитим изменения:
hg ci -m "test revision"
Получаем ворнинг: No username found, using 'hg@repo.nodesquad.com' insteadЭто сообщение говорит о том, что имя пользователя не задано. Его можно задать следующей командой:
echo "[ui]" > ~/.hgrc; echo "username = NODESQUAD.COM user_name <user@nodesquad.com>"Следующий этап - настройка Apache, WSGI и прав доступа
7) Добавить виртуальный хост в конфигурационный файл Apache (путь к скрипту WSGI должен соответствовать созданному в 8-м пункте):
# OSS Repository Virtual Host
WSGISocketPrefix /tmp/wsgi
<Directory "/var/hg/repo/">
Order allow,deny
Allow from all
AllowOverride All
Options ExecCGI
AddHandler cgi-script .cgi
</Directory>
<VirtualHost 111.222.111.222:80>
ServerAdmin admin@nodesquad.com
ServerName repo.nodesquad.com
DocumentRoot /var/hg/repo
# wsgi settings
WSGIProcessGroup hg
WSGIDaemonProcess hg user=hg group=hg threads=2 maximum-requests=1000
# wsgi path to script
WSGIScriptAlias / /var/hg/repo/hgwebdir.wsgi
# Access restriction
<Location />
AuthType Basic
AuthName "NODESQUAD.COM"
AuthUserFile /var/hg/.hg.htpasswd
Require valid-user
</Location>
</VirtualHost>ВНИМАНИЕ: Все дальнейшие "копипасты" должны быть без четверойных пробелов слева! Потому что это Python.
8) Создать скрипт WSGI:sudo -u hg tee > /var/hg/repo/hgwebdir.wsgiсо следующим содержанием:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
os.environ['HGENCODING'] = 'utf-8'
from mercurial.hgweb.hgwebdir_mod import hgwebdir
from mercurial.hgweb.request import wsgiapplication
path = os.path.dirname(os.path. abspath(__file__))
application = hgwebdir(path+'/hgwebdir.conf' )9) Создать конфигурационный файл web-интерфейса:
sudo -u hg tee > /var/hg/repo/hgwebdir.confсо следующим содержанием:
[web]Подробности
style = coal
allow_push = username1, username2, username3, username4
allow_archive = gz, zip, bz2
[paths]
oss = /var/hg/repo/oss
extras = /var/hg/repo/extras
[extensions]
Раздел на собственный вкус. Подробнее смотреть тут:И хотелось бы добавить наглядную статью:Adding functionality with extensions
10) Перечитать конфигурационный файл Apache:
sudo service httpd reload11) Теперь следует создать пользователей в файле авторизации:
htpasswd /var/hg/.hg.htpasswd username1==========================
Полезная ссылка для начинающих:
A tutorial on using Mercurial
и для заканчивающих:
Mercurial Reference 1.0
Комментариев нет:
Отправить комментарий