Evict-BT is a issue tracker written in Rust that integrates loosely with git. In the future, it will hopefully support additional version control systems.
Currently Evict-BT has minimal support for just about everything, but the hope is that while updates may cause strange state, they won't break any issues currently being tracked.
- Features supported by Evict-BT:
- Evict-BT repo initialization/de-initialization --
- Issue creation --
- Branch-based issue location
- Issue authors
- Default issue author --
- Issue listing --
- Issue statuses --
- Default status for new issues --
- User-defined issue states --
- Issue commenting --
- List filtering by status
- Issue tags --
- Issue statuses
- Issue deletion --
- Features to be supported:
- Assigning issues
- More filter options for
- Github integration
- Tracking issues within files
Evict-BT is written in Rust (https://github.com/mozilla/rust/). To install, you will need a working version of rust from the latest master branch.
NOTE: The following probably only works on linux and other systems where /usr/local/bin is on the system path.
Clone the git repository into a location of your choice. Then cd into the root directory of the repo.
There are two methods of installing Evict-BT. The first uses rustpkg, and should probably
only be used if you're familiar with rustpkg, as it is currently limited and has several
rustpkg install evict will install Evict-BT according to your rustpkg config.
The other, more standard method, is to use
make install, and everything
To test your install, run
evict list. If you get a bunch of output that looks like issues,
then you've got a working install. (Evict-BT uses
less to paginate output, so hit q to terminate
Many commands will ignore unknown arguments, except the default-xxx commands which take only 0 or 1 argument.
For commands that take an argument, that argument is the last digits of an issue id. If an issue requires a single id and the given digits match more than one issue, the matching issues will be listed with their titles and no action will be taken.
evict init and
evict clear create/delete all folders/files needed for
Evict-BT to work in a given directory.
Currently, all this means is creating the
evict create creates a new issue. It prompts for a title, an author if needed
and then opens a file for editing using the text editor specified by the EDITOR environment variable.
evict create uses the default author as set by
unless no author has been set or the
--author <auth-name> option is used.
--no-body will cause
evict create to skip launching the
text editor and use an empty body.
--title <title-text> will use as the title and skip prompting for
--author <auth-name> will use as the author, overriding the
default author and skipping prompting.
--body-file <file-name> will use as the body of the issue. This
has not been tested and may be buggy. If there are bugs, try putting the
desired body in a file named
ISSUE_MSG in the directory where evict will be run.
The editor will still be launched, but should already have the desired issue body.
ISSUE_MSG is deleted each time
evict create runs)
evict delete <issue-id> will delete an issue. WARNING: this does not get frequently tested, and may cause git conflicts if not used carefully.
evict list lists all issues for the current branch, or a subset of those as specified by options.
-s will list in short mode, which prints only the title and
ID of issues.
--committed will list only issues which have been committed.
--nocomment lists issue info and body only, not comments.
--status <status-name> lists issues with the status .
--id <issue-id> lists issues which have an id ending in .
evict comment <issue-id> launches an editor to write a comment for the specified issue. Takes only
a single issue.
evict default-author [author-name] prints the current default author if no [author-name] argument is
given, and sets the default to [author-name] otherwise. This is global for the current user, not evict
evict new-status <status-name> creates a new status that can be used for issues
evict set-status <issue-id> <status-name> sets the status of the given issue to the given status. The status
given must have been created using
evict default-status [status-name] prints the current default status if no [status-name] argument is
given, and sets the default to [status-name] otherwise. This is local to the current repo. [status-name] must
have been created using
evict tag <issue-id> <tag> adds a tag to a single issue.
evict untag <issue-id> <tag> removes a tag from a single issue