bif - distributed bug tracking tool
0.1.5_8 (yyyy-mm-dd)
bif COMMAND [ARGS...] [OPTIONS...]
Bif is a distributed topic tracker with a command-line interface. It tracks bugs, tasks and issues in a local database, and exchanges updates with remote "hub" databases.
This document is the beginning of the bif reference material. If you are new to bif you will probably find one of the following a more helpful starting point:
The above are also valid commands; you can run bif doc intro
for example to read the tutorial. Likewise, bif doc command name
displays the bif-command-name reference document.
The bif command is both a local project management application and a network client that communicates with a server process. The following terminology definitions are intended to provide some insight into how bif manipulates and exchanges information.
The most common top-level user commands are as follows:
clone import topics from a hub doc display bif documentation init initialize a new repository list list topics in the repository log view comments and status history move move or rename a topic or project new create a new topic show display a topic's current status sync exchange changes with hubs update comment on or modify a topic work start or stop working a topic
In addition to the above commands a couple of useful aliases are created by default:
ls list topics --status open --project-status run lsi list identities lsp list projects define plan run lss list topics --status stalled --project-status run
Aliases are read from the users config
file (usually located in the $HOME/.config/bif directory).
There are more commands for development and infrequent administration purposes which can be seen with bif --help
or found in the table of contents bif-doc-toc.
The first thing a bif user must do is the one-time activity of creating a "self" identity in the user repository.
$ bif init self
A normal (working) repository can then be created with bif-init.
$ bif init
Projects and topics can be locally defined using bif-new commands.
$ bif new project x Project-X
Collaborative organisations (and their projects) are imported from a hub using bif-clone.
$ bif clone organisation@bif.hub.host
Items in the database can be listed (bif-list), viewed (bif-show) and modified (bif-update) independently of any other repository. Topics can be moved (bif-move) to other projects or "shared" with them using bif-push.
$ bif list $ bif update x --message "an update"
The bif-log command displays the history of respository and topic actions and has options for summarizing activity by increasing levels of aggregation.
Updates are exchanged with the relevant hubs by the bif-sync command. The program that responds to bif requests on the hub is called bifax and is usually accessed over an SSH tunnel. The bif-push command (in addition to sharing topics) allows administrators to copy an organisation node to a hub (kind of like a reverse clone).
The bif-work command allows the user to record time spent on a project or topic, which can be reviewed with bif-show-work.
$ bif work x 10:00 11:30 --message "did stuff" $ bif show work
The following options are common to all commands:
$ bif push --help-tree bif push ID DESTINATION [OPTIONS...] bif push org PATH LOCATION [OPTIONS...] bif push topic ID PATH... [OPTIONS...]
A boolean option can be negated by prefixing it with "no-" as in "--no-debug".
$EDITOR
or $VISUAL
environment variables may also be invoked for certain types of input.$PAGER
when stdout is connected to a terminal. Error messages are sent to stderr except when --debug
is in use.Given the following nodes in the respository:
ID Type Path UUID -- ---- ---- ---- 1 org my.org 775da00c 2 project my.org/build 0eaa2495 3 task my.org/build/3 a922ec59 4 project my.org/build/admin 8f4118aa 5 project my.org/release e5fd7da7 6 issue my.org/release/6 cc87ea8b 7 project my.org/release/admin 17257b3c
we can make the following observations with regards how they are identified:
Note that you should not give projects integer names.
Similarly to nodes, given the following changes in the repository:
ID Type Command UUID -- ---- ------------------ ---- 1 change new org ... c114be2a 2 change new project ... 4866b4a9 3 change new task ... a82d149b 4 change new issue ... a8afeb33 5 change update issue ... 7d912a0c
we can make the following observations with regards how they are identified:
https://bifax.org/ for news and updates.
Mark Lawrence <nomad@null.net>
Copyright 2013-2017 Mark Lawrence <nomad@null.net>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.