Child pages
  • Source Repositories
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

OpenIndiana maintains source repositories directly cloned from the repositories at

The OpenIndiana repositories are read/write and can be cloned via http. You can browse all the Mercurial repositories here:

Configuring the web server

Create /etc/apache2/2.2/conf.d/pkgdev.conf:

<VirtualHost *:80>

DocumentRoot /var/virtualhosts/

<Directory "/usr/demo/mercurial">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all

ScriptAlias /hg /usr/demo/mercurial/hgwebdir.fcgi


Cloning a Mercurial repo

Log in to Create a filesystem for the new repo under data/export, named as the repo:

pfexec zfs create data/export/wombat

Change it to owned by the hg user, hg group:

pfexec chown hg:hg /data/export/wombat

Tell the Mercurial web app about it, by adding a line to /usr/demo/mercurial/hgweb.config:

wombat = /data/export/wombat

Switch to the hg user, and clone into the filesystem:

cd /data/export
hg clone ssh:// wombat

Edit the repository's web information, /data/export/wombat/.hg/hgrc:

description = Code for all wombats

The hg user has a cron job which updates repos. Add this repo to the cron job.

Cloning a Subversion repo

This is a bit fiddlier, as it needs to use a custom-built copy of hg. But the only step that's different is the cloning. Do this instead:

cd /data/export
export PATH=/export/home/openindiana/bin:$PATH
export PYTHONPATH=/export/home/openindiana/lib/python/
hg convert <your subversion url here> wombat

Converting big subversion repositories is seriously slow, consider running hg inside screen or using nohup.

The cron job can't update a converted repo. You basically have to re-run the conversion step again - but it is smart enough to do an incremental conversion.

Pushing changes to a repo

We allow a number of users to push changes to the repos. We use the model of a single "hg" account which can only be accessed via ssh with public keys, and the authorized committers have their public keys in the hg account's .ssh/authorized_keys file.

  • No labels