Skip to main content

Mercurial repository administaration tool

Project description

.. -*- mode: rst -*-

==============
django-hgadmin
==============

Features
========

1. Create new repository and delete
2. Create's backup tarball before delete
3. Change repository settings
4. Authentification

Install
=======

1. Create new Django project
2. Set ``HGWEBDIR_CONF``, ``HGWEBDIR_WSGI``, ``HGWEBDIR_ROOT`` paths
and set ``HGADMIN_ALLOW_REMOVE`` True or False
3. Cange Apache configuration (see example)
4. Put your repos and run
``$ python manage.py syncdb``
5. ???
6. PROFIT :)

Examples
========

Project tree
------------
::
project
|-- __init__.py
|-- auth.wsgi -> ./hgadmin/auth.wsgi
|-- django.wsgi
|-- hgadmin
|-- hgweb.config
|-- hgwebdir.wsgi
|-- manage.py
|-- repos
| |-- test0
| |-- test1.tar.bz2
| `-- test2
|-- settings.py
`-- urls.py


Django settings
---------------
::
##
# Helpers
import os.path
PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))

##
# Paths
HGWEBDIR_CONF = os.path.join(PROJECT_ROOT, 'hgweb.config')
HGWEBDIR_WSGI = os.path.join(PROJECT_ROOT, 'hgwebdir.wsgi')
HGWEBDIR_ROOT = os.path.join(PROJECT_ROOT, 'repos')

##
# Allow remove repo from server.
# Be careful!
HGADMIN_ALLOW_REMOVE = False


Apache settings
---------------
::
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName hg.example.com
DocumentRoot /path/to/hg/root

##
# WSGI
#
# WSGIProcessGroup group-name
# WSGIDaemonProcess group-name user=username group=group maximum-requests=2000
#
# Django settings.HGWEBDIR_WSGI
WSGIScriptAlias / /path/to/hgwebdir.wsgi

<Location />
Order allow,deny
Allow from all

##
# WSGI based auth
AuthName "Mercurial repository"
AuthType Basic
AuthBasicProvider wsgi
WSGIAuthUserScript /path/to/hgadmin/auth.wsgi

<LimitExcept GET>
Require valid-user
</LimitExcept>
</Location>

LogLevel debug
ErrorLog /var/log/httpd/hg.example.com-error.log
CustomLog /var/log/httpd/hg.example.com-access.log common
</VirtualHost>

Project details


Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page