The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Introduction To Bif

Bif is a project management tool with a command-line interface. It helps you track tasks, issues and bugs using a local database, exchanging changes with remote databases on demand. This introduction to bif is based on situations typically encountered by software developers; It is assumed that you are comfortable working with command line programs and your operating system shell (e.g. bash).

This document is based on bif version 0.1.0_28 (2014-09-23).

Initialize a repository

A repository must be initialized before you can create any topics:

    #!sh
    bif init

The first time you run this you will be asked for your email address and name.

Create, List And Modify Topics

Create a project, identified by a name and a title. You will also be prompted to add an initial change message.

    #!sh
    bif new project todo Things to do

Create some tasks and issues. Use the --message|-m option to prevent your $EDITOR from being invoked.

    #!sh
    bif new task Take out the rubbish
    bif new issue I need more spare time -m "meh!"

Retrieve the lists of things you have created:

    #!sh
    bif list projects
    bif list topics

Change the status of some things using the change command, but first you might want to know which status types are valid:

    #!sh
    bif list task-status
    bif update 16 closed

View the history of changes to a particular topic:

    #!
    bif log 16

Not giving an ID argument to log will display the entire history of the repository.

Share An Issue Between Two Projects

    #!sh
    bif new project other Someone elses problem
    bif push 17 other

But recognise that their status can be individually modified:

    #!sh
    bif update 45 closed

So how do we see all the current statuses of an issue?

    bif show 45

Fork An Existing Project

Say you are managing a software project, and you are releasing a new version but are also continuing to work on your development branch. Rather than having to push each issue separately from the old project to the new we can just fork the old one.

    #!sh
    bif new project v2 --fork devel

And notice that the new project has exactly the same issues as the original:

    #!sh
    bif list topics

Collaborating With Others

Need to import the project details from an organisation's hub somewhere.

    #!sh
    bif pull hub organisation@hub.com

Then, most likely, someone else already created the project, and you just want to work on it too:

    #!sh
    bif import todo organisation
    bif list projects

Then to exchange changes you make and get changes others have made, just call sync:

    #!sh
    bif sync

See Also

bif-doc

Author

Mark Lawrence <nomad@null.net>

Copyright and License

Copyright 2013-2014 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.