MercurialVersionControl
Benötigt wird ein Web Server, Mercurial, Python
Apache2 + mod_python + mod_cgi + mod_auth
VirtualHost anlegen (post,put sperren)
{{{
<VirtualHost *>
ServerAdmin webmaster@back2heaven.de
ServerName hg.back2heaven.de
DocumentRoot /mnt/mercurial
# index.cgi ist das webdir.cgi aus /usr/share/doc/mercurial/examples/
ScriptAliasMatch ^/hg(.*) /mnt/mercurial/cgi-bin/index.cgi$1
ScriptAliasMatch ^/cgi-bin(.*) /mnt/mercurial/cgi-bin/index.cgi$1
ScriptAlias /cgi/ /mnt/mercurial/cgi-bin/
<Directory /mnt/mercurial/cgi-bin/>
DirectoryIndex index.cgi
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AddHandler cgi-script .cgi
AuthUserFile /etc/apache2/htpasswd
AuthName "hgdev"
AuthType Basic
<Limit POST PUT>
Require valid-user
</Limit>
</Directory>
ErrorLog /var/log/apache2/error_hg.log
LogLevel warn
CustomLog /var/log/apache2/access_hg.log combined
ServerSignature on
</VirtualHost>
}}}
{{{
#hgweb.config
[collections]
/mnt/mercurial/ = /mnt/mercurial/
#eine leerzeile muss bei mir drin sein
}}}
{{{
#!/usr/bin/env python
#hgwebdir
import cgitb, sys
cgitb.enable()
from mercurial.hgweb.hgwebdir_mod import hgwebdir
from mercurial.hgweb.request import wsgiapplication
import mercurial.hgweb.wsgicgi as wsgicgi
def make_web_app():
return hgwebdir("hgweb.config")
wsgicgi.launch(wsgiapplication(make_web_app))
}}}
nun kann man unter /mnt/mercurial
alle repositorys hochladen!
todo
:htpasswd -c /etc/apache2/htpassed anlegen
:hg init /mnt/mercurial mein test_hg
#/etc/mercurial/hgrc
hochladen von daten via http
{{{
[web]
allow_archive = bz2 gz zip
allowpull = true
contact =developer@schwarze-allianz.de
maxchanges = 15
maxfiles = 15
style = gitweb
# wenn man kein ssl nutzen will
push_ssl = false
# brauch man
allow_push = *
}}}
todo
:dann kann man das lokale repository hochladen
lade das rep. runter
hg clone http://hg.back2heaven.de/hg/test
dannach kann man es bearbeiten und mit hg push wieder zum server schicken