Сначала следует добавить все необходимые пакеты
1) Установить httpd:
sudo yum install httpd
добавить его в автозапуск:
sudo chkconfig httpd on
и запустить:
sudo service httpd start
2) Установить модуль WSGI для Apache (модуль для работы с Python):
sudo yum install mod_wsgi
3) Установить пакет Mercurial:
sudo yum install mercurial
Переходим к настройке репозитория.
4) Создать пользователя hg:
sudo useradd --system hg
5) Создать директорию от имени hg, в которой будут создаваться сами репозитории:
sudo -u hg mkdir -p /var/hg/repo
и директорию для virtual-host:
sudo -u hg mkdir -p /var/hg/www
6) Создать первый репозиторий (остальные, соответственно, по образу и подобию):
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 reload
11) Теперь следует создать пользователей в файле авторизации:
htpasswd /var/hg/.hg.htpasswd username1
==========================
Полезная ссылка для начинающих:
A tutorial on using Mercurial
и для заканчивающих:
Mercurial Reference 1.0
Комментариев нет:
Отправить комментарий