Ich möchte einmal zusammen fassen, wie man seine gesamten Mercurial Repositories mit einen Apachen veröffentlicht. Diese Tutorial war meine Grundlage.
Voraussetzungen für Open Solaris
- SUNWmercurial
- SUNWapch22
- hgwebdir.cgi herunter laden Ich habe ein paar Anpassungen gemacht Das Orginal ist z.B unter /usr/demo/mercurial/hgwebdir.fcgi verfügbar
Verzeichnisstruktur anlegen
root@trantor www $ zfs create rpool/export/repos
root@trantor www $ mkdir /export/repos/project1
root@trantor www $ mkdir /export/repos/project2
root@trantor www $ hg init /export/repos/project1 // Repo initalisieren
root@trantor www $ hg init /export/repos/project2 // Repo initalisieren
CGI-Skript erstellen
root@trantor www $ cd /export/repos/
root@trantor repos $ cp hgwebdir.cgi /export/repos/hgwebdir.cgi
root@trantor repos $ chmod +x hgwebdir.cgi
Diese Konfiguration gibt an, wie die Repository-Liste angezeigt wird
root@trantor repos $ vi hgweb.config
[web]
baseurl = /hg
style = gitweb
encoding = UTF-8
[paths]
Project 1 = /export/repos/project1
Project 2 = /export/repos/project2
Konfiguration für die einzelnen Repositories erstellen
root@trantor repos $ vi project1/.hg/hgrc
[web]
description = Project 1
author = Michael Rennecke <michael.rennecke@sun.com>
contact = michael.rennecke@sun.com
allow_archive = gz bz2 zip
push_ssl = false
allow_push = *
[web]
style = gitweb
encoding = UTF-8
Alles den Apachen geben
root@trantor repos $ chown -R webservd:webservd /export/repos/
Abschließende Konfiguration des Apachen
Es gibt viele Möglichkeiten, das einfachste ist, wenn man die folgenden Zeilen in die einfügt.
# Mercurial Repositories
ScriptAliasMatch ^/hg/(.*) /export/repos/hgwebdir.cgi/$1
<Location "/hg">
DirectoryIndex hgwebdir.cgi
AddHandler cgi-script .cgi
Options ExecCGI
Order allow,Allow from all
</Location>
root@trantor repos $ svcadm restart apache22
Die Respositories werden sind nun unter <hostname>/hg/<repo> verfügbar. Die Liste aller Repositories ist unter <hostname>/hg/. Der / am Ende ist wichtig! Es gibt noch viel mehr Möglichkeiten, was man konfigurieren kann. Das soll erst einmal ein Anfang in diese Themantik sein. Die Repositories kann man mit hg clone http://<hostname>/hg/<repo> erreichen.