ti — issue tracking system built on Git
ti, short for ticgit, is an issue tracker based on the Git
revision control system. It allows you to store bugs in your project in a
separate ticgit or ticgit-ng branch of its development
repository, thereby keeping open issues close to the source without
cluttering the tree.
Every ticket consists of the following information:
- Title
- A short summary of the problem. This can be compared to the subject of an
e-mail or to the first line of a Git commit message.
- Ticket ID
- The Ticket ID (TicId) is the SHA-1 hash of the file which holds the ticket
name (which is a normalized form of the title including the time of ticket
creation and a small random number). It is used to uniquely identify a
ticket.
- Number
- Apart from TicIds, tickets can also be referred to by using their number.
This will often be preferred to TicIds when using ticgit from the command
line (i.e., in everyday work), but ticket numbers are not persistent (they
change with every ti list invocation).
-
- In the current version of ticgit, ti list does not show numbers any
more, but they can still be used (by counting manually).
- State
- A ticket can either be open, resolved, invalid or put
on hold.
- Assignment
- The e-mail address of the person working on the ticket.
- Tag
- A custom label which tells more about the nature of a ticket. A typical
example is feature (not a bug, but a feature suggestion). ticgit
associates no special semantics to tags, you are free to choose them
however you like.
-
- Tickets can have an arbitrary number of tags.
- Points
- You can use this integer value to assign some numerical value, such as a
measure for the importance, to each ticket. Again, ticgit does not dictate
how to use this field.
- Comments provide a simple form of communication between bug reporters and
developers.
ti supports the following commands:
- list
- List tickets. By default, only open issues are shown; to show
tickets in other states, use -s STATE. You can also select
by tag (-t TAG) or by assignment (-a ADDRESS). When running
list, small integer numbers will be assigned to all shown tickets;
you may use them to refer to tickets in other commands until you call
list again.
- state
- Pass a ticket ID and a state specification to set the ticket's state
information. You can omit the ticket ID to work on the current ticket.
- show
- Show everything known about the specified ticket. You can omit the ticket
ID to show the current ticket.
- new
- Create a new ticket. This will launch an editor to let you enter a title,
more detailled information about the issue, and some tags. Initially, the
ticket will be in the open state.
- checkout
- Set the current ticket.
- Add a comment to the ticket specified on the command line. If you do not
pass one, the current ticket will be used.
- tag
- Pass a ticket ID and a tag name to add a label to an issue. You can omit
the ticket ID to tag the current ticket. If you use the -d option,
the tag will be removed instead of added.
- assign
- Assign the specified ticket to you (or to the given user, when -u
ADDRESS is given). If you omit the ticket ID, the current ticket will
be assigned. Otherwise, you can prepend -c to the ticket ID to
perform the checkout operation after assigning the ticket.
- points
- Pass a ticket ID and some integer to assign a point value to the given
ticket. If you only pass a number, this command manipulates the current
ticket.
- sync
- Synchronize tickets with the remote repository specified on the command
line. This uses the underlying push and pull command implemented in Git,
so you can use your usual named remotes. The default remote is
origin.
- recent
- Get a human-readable changelog of the tickets maintained by ticgit. This
command takes its information straight from the commit messages of the
ticgit(-ng) branch.
These commands show usage information about themselves when passed
the --help option.
- ~/.ticgit/, ~/.ticgit-ng/
- The ticket cache.
ticgit is Copyright © 2008 Scott Chacon
<schacon@gmail.com>.
ticgit-ng is Copyright © 2011 Jeff Welling
<jeff.welling@gmail.com>.
This manual page was written by Michael Schutte for the Debian
GNU/Linux system (but may be used by others).