hive is a distributed issue tracker in the spirit of Bugs
Everywhere. Issues in
hive are included as
"merge-tolerant" plain-text files that can be version-controlled alongside
source code. The package includes both a command-line interface and a web
interface for interacting with issues, and, if you want, issues can also be
edited via a plain-text editor.
You can install
$ sudo pip3 install hive_bt
or by cloning the repository and installing manually:
$ hg clone https://hz.mit.edu/hg/hive_bt $ cd hive_bt $ sudo pip3 install .
The Documentation page has more information about using
That's a more complicated question. For one thing,
hive is very much in a
"pre-alpha" stage. In short, this means that, until a stable version is
released, some things will only be partially implemented, some things will be
broken, and some things may change dramatically without much notice. If
you're OK with that, read on!
Beyond the fact that
hive is very new, there are pros and cons associated
with distributed version control in general, and there are pros and cons
associated with this particular implementation. For example:
hive, bugs and code are tracked together. Among other things,
this means that merge requests can include not only changes to the code,
but also changes to the relevant issues. It also means that it is possible
for each branch to contain its own information about bugs that are relevant
to that branch, which may be helpful when maintaining different branches
for, for example, development and production versions of a piece of
software. Merging branches can also merge changes to the issues.
Since the issues are stored as part of the repository, browsing and modifying issues does not require an Internet connection.
Issues are stored in a format that makes it impossible for merge conflicts to occur for most operations on issues.
hive is decentralized and platform-agnostic. It currently supports both
Git and Mercurial.
It can be used on local repositories with no public access, and for
public-facing repositories, it does not require using any particular
platform to host your repository.
hive stores data in the repository, and its particular format can use a
large number of files. This can mean that the repository contains many
more files than it otherwise would, and that the history may contain
commits related only to modifying the state of issues.
hive can be slow. I'm not sure you'll notice this until you reach
thousands of issues, but the particular choice of internal representation
means that certain operations can be slow. Internal caching mechanisms
help with this a little bit.
If you want a distributed bug tracker but are worried about this particular implementation, you might want to consider:
If you want to get in touch, report a bug, send a patch, etc, feel free to send
me an e-mail at
hive is written in Python and relies on a few great
pieces of software:
click, and it also makes use of the
termcolorpackage for generating certain kinds of colored output. the progress bar that shows when running building the cache uses the
flaskweb framework and uses
Python-Markdownfor interpreting Markdown in the bodies of issues and comments.