Bazaar (bzr) is a distributed version control system (VCS) sponsored by Canonical and thus bzr is widely used by the Ubuntu community.

Like any vcs, bzr will let you track the different version of your code locally and let you push the changes to a remote server.

One cool feature of bzr is that you can maintain a remote copy of your code history without having a bzr server running, nor having a copy of bzr on the remote server running and simply by using ssh to transport the data.

This tutorial will not explain how bzr works, but will show the couple few step to create your local repository, add a few files, commit the changes, push them to a remote server and copy the branch newly created to another machine.

1. Client Requirements

In order to use bzr against a bzr server, only bzr is required, but in our case, we want to use ssh to transport the data without the help of a bzr server, e.g. sftp, which will require python-paramiko.

Type the following to install the required package on the client:

$ sudo apt-get install bzr python-paramiko

2. Creating a local bzr branch

First, let's create a directory which will be our branch, create a file and commit it: