===============================================================================

Overview
--------

'cil' allows easy command-line creation of an issue tracker. It saves each
issue locally and in plain text. Commands are given such that these issues can
be added, edited and listed easily.

===============================================================================

Quick Start
-----------

Once installed, you should be able to run 'cil':

 $ cil --help

Now change directory to your current development project. To save the issues,
'cil' requires setting up, so issue the 'init' command:

 $ cil init

This creates a '.cil' file and an 'issues/' directory.

Then add an issue. An editor will pop-up and you fill in the details:

 $ cil add

After you've added it, you can see a representation of the issue. Now you can
list all the issues by using the 'list' command:

 $ cil list

When listing the issues, they can also be filtered:

 $ cil list --status=New
 $ cil list --label=Type-Enhancement
 $ cil list --is-open
 $ cil list --label=Milestone-v0.3 --is-open
 $ cil list --is-mine

You can see what the issue name is by looking at the 'Issue' title. Imagine it
is 'cafebabe' (which by default is the time from epoch). To see your issue
again, use the 'show' command:

 $ cil show cafebabe

Another reporting command is 'summary' for which all the filter options also
apply:

 $ cil summary
 $ cil summary --status=New
 $ cil summary --label=Type-Enhancement
 $ cil summary --is-open
 $ cil summary --label=Milestone-v0.3 --is-open

The columns show 'Name', 'Status', 'CreatedBy' and 'Summary'.

Shucks, we've noticed we got something wrong in the issue. Let's edit it:

 $ cil edit cafebabe

Save your changes and exit your editor. The issue is now saved. Try showing it
again to make sure your changed are correct.

We have just found out more about the issue so let's add a comment to it:

 $ cil comment cafebabe

When you show the issue again, you'll see the comment has been added and is now
displayed.

Adding an attachment is easy:

 $ cil attach cafebabe core
 ... added attachment 'decaf7ea' ...
 $ cil show cafebabe

If someone else added the attachment and you wish to view it, you can extract
it from the issue:

 $ cil extract decaf7ea --filename=mycore

If someone sends you a bug report or a comment via email and you wish to import
it into your issues list, you can use the 'am' command to do it's best to
import it. It will try and figure out if an issue is already mentioned and if
so, will try and import the email as a comment for that particular issue. In
the case where an existing issue is not found, it will import the email as a
new issue:

 $ cil am email.txt

Finally, because the cil issue files reside on the filesystem in flat files,
there needs to be a way to check the integrity of the issues, therefore you can
run this to do checks regarding the whole issue list:

 $ cil fsck

That's it for now. As you can see, if you've played with any kind of bug/issue
tracker before, 'cil' is straightforward.

Sometimes, you might add someone else repository from which you want to fetch
both code and issues. If you merge a new issue and you want to assign it to
yourself, instead of editing the issue and having to type in your name and
email, just use 'cil steal'. This will assign the issue to yourself and save it
back out:

 $ cil steal cafebabe

Then just commit it to your VCS.

===============================================================================
