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 -- `evict init/clear`
- Issue creation -- `evict create`
- Branch-based issue location
- Issue authors
- Default issue author -- `evict default-author`
- Issue listing -- `evict list`
- Issue statuses -- `evict set-status`
- Default status for new issues -- `evict default-status`
- User-defined issue states -- `evict new-status`
- Issue commenting -- `evict comment`
- List filtering by status
- Issue tags -- `evict tag`
- Issue statuses
- Issue deletion -- `evict delete`
- Features to be supported:
- Assigning issues
- More filter options for `evict list`
- Github integration
- Tracking issues within files
-
Installation
------------
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
bugs. rustpkg install evict
will install Evict-BT according to your rustpkg config.
The other, more standard method, is to use make
. Then make install
, and everything
should work.
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
it)
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
directory.
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.
By default evict create
uses the default author as set by evict default-author
,
unless no author has been set or the --author <auth-name>
option is used.
Passing --no-body
will cause evict create
to skip launching the
text editor and use an empty body.
Passing --title <title-text>
will use as the title and skip prompting for
a title.
Passing --author <auth-name>
will use as the author, overriding the
default author and skipping prompting.
Passing --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.
(Note: 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.
Passing --short
or -s
will list in short mode, which prints only the title and
ID of issues.
Passing --committed
will list only issues which have been committed.
Passing --nocomment
lists issue info and body only, not comments.
Passing --status <status-name>
lists issues with the status .
Passing --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
repository based.
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 new-status
.
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 new-status
.
evict tag <issue-id> <tag>
adds a tag to a single issue.
evict untag <issue-id> <tag>
removes a tag from a single issue