Установка.
Как всегда очень просто:
aptitude install mercurial
После этого уже можно работать. Дальше можно создать место для хранения репозиториев и сделать к ним доступ через веб, поэтому
Настраиваем веб
Шаг 1 — FastCgi скрипт
/var/hg/hgwebdir.py
#!/usr/bin/env python
import sys
from mercurial.hgweb.hgwebdir_mod import hgwebdir
from mercurial.hgweb.request import wsgiapplication
from flup.server.fcgi import WSGIServer
def make_web_app():
return hgwebdir('/var/hg/hgweb.config')
WSGIServer(wsgiapplication(make_web_app)).run()
Шаг 2- конфиг для FastCgi скрипта
/var/hg/hgweb.config
[collections] /var/hg/repos = /var/hg/repos [web] style = gitweb baseurl = allow_push = * push_ssl = false
Шаг 3 — VirtualHost для nginх
server {
server_name mercurial;
listen 443;
listen 80;
ssl on;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/cert.key;
location / {
auth_basic "closed site"
# limit_except GET {
auth_basic_user_file /var/hg/.passwd;
# }
fastcgi_param PATH_INFO $uri;
fastcgi_param SERVER_NAME $server_name;
fastcgi_pass 127.0.0.1:9001;
fastcgi_param HTTPS on;
include /etc/nginx/fastcgi_params;
}
}
Шаг 4 — Запуск fastcgi скрипта
/etc/init.d/init-hgwebdir
#!/bin/bash
SCRIPT="/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9001 -f /var/hg/hgwebdir.py -C "
KILL_SCRIPT="kill -9 `ps aux | grep Sl | grep 'python /var/hg/hgwebdir.py' | awk '{print $2}'`"
RETVAL=0
case "$1" in
start)
$SCRIPT $SCRIPT_ARGS
RETVAL=$?
;;
stop)
$KILL_SCRIPT
RETVAL=$?
;;
restart)
$KILL_SCRIPT
sleep 1s
$SCRIPT $SCRIPT_ARGS
RETVAL=$?
;;
*)
echo "Usage: init-hgwebdir {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
Шаг 5 — регистрация скрипта для запуска при старте системы
update-rc.d init-hgwebdir defaults
по хорошему еще нужно в скрипт добавить шапку, подобную этой
### BEGIN INIT INFO # Provides: scriptname # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO
но добавило и так, только выдало предупрежедние.
Создание репозиториев
cd /var/hg/repos hg init myrepo
в repos/myrepo/.hg/hgrc прописать по вкусу и требованиям нужные параметры,
например:
[web]
allow_push = *
push_ssl = false
contact = your@email.com
description = Your Mega Super Open Source Project
Далее добаляем пользователей в /var/hg/.passwd и спокойно работаем через http.

декабря 20, 2009 at 15:28
auth_basic "closed site"
echo "Usage: init-hgwebdir {start|stop|restart}"
В примерах это так и нужно или у тебя те же грабли, что и у меня были?
декабря 20, 2009 at 19:57
[...] пример отформатированного и подсвеченного кода был, то не составило труда узнать, что это за [...]