Using darcs on Alioth
Creating a new public darcs repository (for a new project)
See Alioth/FAQ#vcs-repos, you have to change the type of repository used by your project. It will then get created in /darcs/<project-group>.
Note: Instead of registering a separate project(s) for packages, consider using the Collab Maint project; see Alioth/PackagingProject for more information. Once granted access to that project (DD have access by default, non-DD must request it) you can start hosting darcs project immediately by logging into alioth.debian.org and creating a darcs repository under /darcs/collab-maint/.
To initialize your remote repository, you have to run under /darcs/<group> (<group> can be collab-maint if you don't have a dedicated project):
$ umask 002 $ mkdir <project> $ cd <project> $ darcs init
Darcsweb offers the possibility to show some special values, like repository description (desc), repository URL (url) and upstream repository URL (projurl). You need to modify the following files:
$ cd /path/to/<project> $ mkdir -p _darcs/third_party/darcsweb $ vim _darcs/third_party/darcsweb/desc $ vim _darcs/third_party/darcsweb/url $ vim _darcs/third_party/darcsweb/projurl
Then you have to put some real content in that empty repository. Either darcs pull on darcs.debian.org or darcs push from a remote host to darcs.debian.org. See below for the darcs URLs that you can use.
Example: To push a project to an alioth collab-maint repository:
$ cd /path/to/<project> $ darcs push <login>@darcs.debian.org:/darcs/collab-maint/<project>
They are accessible by darcs using http (read-only) or ssh (read/write), or by darcsweb at http://darcs.debian.org (read-only). For instance, you'll be able to check out your branch though ssh with:
$ darcs get <login>@darcs.debian.org:/darcs/<group>/<project>
Anonymous users will enjoy read-only access with following commands. The <group> could be e.g. package name or collab-maint if hosted collaboratively.
$ darcs get http://darcs.debian.org/darcs/<group>/<project>
Setting up hooks
Commit mails with diff
To send diffstats to a mailing list and the PTS use:
$ cd <project> $ cat >_darcs/prefs/defaults apply run-posthook apply posthook \ TO=<alioth-project-name>-email@example.com \ BCC=dispatch+<project>firstname.lastname@example.org \ PROJECT=<alioth-project-name> \ REPO_NAME=<project> \ /usr/local/bin/darcs-email-changelog
Sending notices on IRC via CIA bots
Some hooks meant for CIA are there: http://cia.vc/doc/clients/
Using personal darcs repositories
It is also possible to have personal darcs repositories. Just log in on alioth, then
$ mkdir ~/public_darcs
and put your darcs repositories there, e.g. <project>.
After a few hours they will be automatically detected and listed on http://darcs.debian.org. The repositories are available through the following URLs:
$ darcs get http://darcs.debian.org/~<login>/<project> $ darcs get <login>@darcs.debian.org:~/public_darcs/<project>