Artemis is a lightweight distributed issue tracking extension for Mercurial.
Individual issues are stored in directories in an .issues subdirectory (overridable in a config file). Each one is a Maildir and each one is assumed to have a single root message. Various properties of an issue are stored in the headers of that message.
One can obtain Artemis by cloning its repository:
hg clone http://hg.mrzv.org/Artemis/
or downloading the entire repository as a tarball.
In the [extensions] section of your ~/.hgrc add:
artemis = /path/to/artemis.py
Optionally, provide a section [artemis], and specify an alternative path for the issues subdirectory (instead of the default .issues):
[artemis] issues = _issues
Create an issue:
# hg iadd ... enter some text in an editor ... Added new issue 907ab57e04502afd # hg ilist 907ab57e04502afd ( 0) [new]: New issue # hg ishow 907 ====================================================================== From: ... Date: ... Subject: New issue State: new Detailed description. ----------------------------------------------------------------------
Add a comment to the issue:
# hg iadd 907 ... enter the comment text ====================================================================== From: ... [snip] Detailed description. ---------------------------------------------------------------------- Comments: 1: [dmitriy] Some comment ----------------------------------------------------------------------
And a comment to the comment:
# hg iadd 907 1
... enter the comment text ...
======================================================================
From: ...
[snip]
Detailed description.
----------------------------------------------------------------------
Comments:
1: [dmitriy] Some comment
2: [dmitriy] Comment on a comment
----------------------------------------------------------------------
Close the issue:
# hg iadd 907 -p state=resolved -p resolution=fixed -n
======================================================================
From: ...
[snip]
Detailed description.
----------------------------------------------------------------------
Comments:
1: [dmitriy] Some comment
2: [dmitriy] Comment on a comment
3: [dmitriy] changed properties (state=resolved, resolution=fixed)
----------------------------------------------------------------------
No more new issues, and one resolved issue:
# hg ilist # hg ilist -a 907ab57e04502afd ( 3) [resolved=fixed]: New issue
The fact that issues are Maildirs, allows one to look at them in, for example, mutt with predictable results:
mutt -Rf .issues/907ab57e04502afd
Add an issue, or a comment to an existing issue or comment. The comment is recorded as a reply to the particular message. iadd is the only command that changes the state of the repository (by adding the new issue files to the list of tracked files or updating some of them), however, it does not perform an actual commit.
List issues.
Show an issue or a comment.
Artemis scans all files of the form .issues/.filter*, and processes them as config files. Section names become filter names, and the individual settings become properties. For example the following:
[olddoc] category=documentation state=resolved
placed in a file .issues/.filter creates a filter olddoc which can be invoked with the ilist command:
hg ilist -f olddoc