Сен 27 2009

Mercurial. Установка и настройка на Debian Lenny

Установка.

Как всегда очень просто:
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.

Tags: , ,

2 Responses to “Mercurial. Установка и настройка на Debian Lenny”

  1. Igorka says:

    auth_basic "closed site"

    echo "Usage: init-hgwebdir {start|stop|restart}"

    В примерах это так и нужно или у тебя те же грабли, что и у меня были?

  2. IgorKa - Информационный ресурс » Wordpress - подсветка кода says:

    [...] пример отформатированного и подсвеченного кода был, то не составило труда узнать, что это за [...]

Leave a Reply