(Traduction du texte original en anglais : hgserve)

Mercurial possède un serveur web léger embarqué qui peut être utilisé pour parcourir un dépôt avec un navigateur web ou pour autoriser une machine distante à rapatrier depuis votre machine. Pour l'utiliser, il suffit de faire :

$ hg serve

Et de faire pointer votre navigateur sur http://localhost:8000/.

Le serveur web embarqué ne contient pas toutes les fonctionnalités des autres serveurs web comme le contrôle d'accès, l'identification, SSL, etc. Ces dernières sont particulièrement utiles si vous voulez envoyer de manière sécuriser vers un dépôt sur le web. Donc, si vous souhaitez mettre en place un serveur permanent, vous devrez probablement utiliser un serveur en CGI.

Ce qui suit détaille les options pour utiliser le serveur HTTP de mercurial :

bash-2.05$ hg --version
Mercurial Distributed SCM (version 1.2.1)

Copyright (C) 2005-2009 Matt Mackall <mpm@selenic.com> and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
bash-2.05$ hg help serve
hg serve [OPTION]...

export the repository via HTTP

    Start a local HTTP repository browser and pull server.

    By default, the server logs accesses to stdout and errors to
    stderr. Use the "-A" and "-E" options to log to files.

options:

 -A --accesslog       name of access log file to write to
 -d --daemon          run server in background
    --daemon-pipefds  used internally by daemon mode
 -E --errorlog        name of error log file to write to
 -p --port            port to listen on (default: 8000)
 -a --address         address to listen on (default: all interfaces)
    --prefix          prefix path to serve from (default: server root)
 -n --name            name to show in web pages (default: working dir)
    --webdir-conf     name of the webdir config file (serve more than one repo)
    --pid-file        name of file to write process ID to
    --stdio           for remote clients
 -t --templates       web templates to use
    --style           template style to use
 -6 --ipv6            use IPv6 in addition to IPv4
    --certificate     SSL certificate file

use "hg -v help serve" to show global options
bash-2.05$

Voici un script pour démarrer et arrêter le serveur HTTP embarqué dans Mercurial.

bash-2.05$ cat  hg.init
#!/sbin/sh
#
# Script de démarrage pour le serveur Mercurial.
#
# Changez les lignes suivantes selon votre environnement
APP_BIN=/usr/bin/hg
SRC=/export/src
SRCNAME=" package source"
# Chemin vers le fichier PID du processus hg.
PID_FILE=/var/adm/hg.pid


state=$1

case "$state" in
'start')
    echo "Démarrage du serveur Mercurial."
   (cd ${SRC} ;${APP_BIN} serve --name "${SRCNAME}"  -d  -p 8001 --pid-file ${PID_FILE})
  ;;

'stop')
  if [ -f "${PID_FILE}" ]; then
    PID=`cat "${PID_FILE}"`
    if [ "${PID}" -gt 1 ]; then
      kill -TERM ${PID}
      echo "Arrêt du service Mercurial PID=${PID}."
    else
      echo Mauvais PID pour Mercurial -- \"${PID}\"
    fi
  else
    echo Pas de fichier PID sauvé pour mercurial
  fi
  ;;

*)
  echo "$0 {start|stop}"
  exit 1
  ;;
esac
bash-2.05$


FrenchCommand CategoryWeb