vijaykramesh / evict

A simple, git-integrated issue tracker.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Evict-BT Build Status

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`
Issue deletion -- `evict delete` (limited to non-committed issues)
Branch-based issue location
Issue committing -- `evict sync`
Merging across branches -- `evict merge`
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
Features to be supported:
Default issue statuses for new repos.
Issue status removal
Assigning issues
Issue tags
More filter options for `evict list`
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 great.

To test your install, run evict sync and then 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)

Commands

General

All 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.

init/clear

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.

create

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)

delete

evict delete <issue-id> deletes the issue specified by , if that issue has not yet been committed.

list

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 .

comment

evict comment <issue-id> launches an editor to write a comment for the specified issue. Takes only a single issue.

default-author

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.

new-status

evict new-status <status-name> creates a new status that can be used for issues

set-status

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.

default-status

evict default-status [status-name] print 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.

merge

evict merge <branch-A> [branch-B] takes one or two git branches as arguments. If given a single branch, that branch's issues are merged into the current branch's issues. Otherwise, the first branch's issues are merged into the second branch's issues.

sync

evict sync synchronizes the current branch's issues with those in the git repository. This should be run before every commit and after each pull/merge. (NOTE: git will likely find conflicts in .evict/issues.ebtd during merges. These should be fixed by running evict merge for the incoming branch and then evict sync. Be sure to run evict merge before evict sync, or issues from the incoming branch will be removed from the repositorry. They can still be re-added by running evict merge <branch>, evict sync, and then committing to git but this would require an issue-only commit.)

About

A simple, git-integrated issue tracker.

License:Other