What is Bazaar?
Bazaar (bzr) is a Source Code Management (SCM), a tool for software developers which supports collaborative development of software within a team, and the tracking of changes to software source code over time.
Bazaar is used by developers, and advanced users who need the very latest changes to the software (before releases occur). Software users generally do not need Bazaar; typically they will download official file releases made available by the project instead.
Developers should familiarize themselves with Bazaar by reading the Bazaar Documentation.
Modern SCM facilities
Here's a nice writeup of why you should consider using a Distributed Version Control System (DVCS), and a comparison of the major DVCSs: http://www.infoq.com/articles/dvcs-guide
- All 1.10 features of bzr are supported.
- Developer (read/write) access is provided via ssh (bzr+ssh://).
- anonymous (read-only) access are provided via Bazaar's daemon protocol ("bzr://").
- Several Bazaar clients are supported, including:
- The official command line Bazaar client (MS Windows, Mac OS X, Linux, BSD).
- The official windows shell extension client, TortoiseBZR (MS Windows).
- Repositories may be viewed via web browser using the Loggerhead.
- Existing repositories may be imported via a normal bzr push (since Bazaar is a distributed SCM).
- Repository access may be granted or revoked from a developer using the Project Admin interface.
- The normal set of hook scripts are supported, and may be changed by using our interactive shell service.
- Repository backups and mirroring may be performed using rsync.
- Service usage is not restricted by quotas.
Bazaar service may be enabled for your project as follows:
- Login as a project administrator and go to the Develop page for your project.
- Select the Bazaar option under the Project Admin menu / Available Features.
- On the left of the "Bazaar" feature is a check box to enable it. Clicking in this check box will enable Bazaar.
Once Bazaar has been enabled, you may wish to adjust permssion grants for your users, if you need to disable one or more user's ability to make changes in the Bazaar repository.
The standard way to modify the contents of your repository is using a Bazaar client as detailed in the Bazaar User Guide. Refer to the Getting Started section for how to make your first commit to your new repository.
Administrators may also manually manipulate their repository via the site interactive shell service.
Details for using this feature can be found via the Shell service. The repository will be mounted at
To access a Bazaar repository, configure your Bazaar client as follows (replace PROJECTNAME with the UNIX group name of the project):
- bzr://PROJECTNAME.bzr.sourceforge.net/bzrroot/PROJECTNAME (read-only)
- bzr+ssh://USERNAME@PROJECTNAME.bzr.sourceforge.net/bzrroot/PROJECTNAME (read/write)
For those developers who have more than 16 projects, you may need to include your PROJECTNAME as a part of the USERNAME (appended after a comma) in order to work around a Linux permission limitation:
As of 2012-02-06, this is no longer necessary. While it will still work for the time being, we encourage that users stop using the "USERNAME,PROJECTNAME" format.
The read-only access does not prompt for a password.
The read/write access uses your ssh password or ssh key to authorize your access. To perform write operations, your project administrator must have granted you write access to the repository.
Your project's Bazaar repository will be completely empty at the start, Bazaar doesn't allow for branching of a repository so you must add a branch before you can check one out. What you will do instead is to push or branch a Bazaar repository that you create (or have previously created) from your own system to our servers. Since Bazaar is a distributed version control system, having a copy of the full repository on your local system is the normal way things work.
How to create a new repository
Note: - For all examples below, "PROJECTNAME" represents a SourceForge.net project UNIX name and "USERNAME" represents your SourceForge.net user account.
Create an empty repository like this:
mkdir PROJECTNAME cd PROJECTNAME bzr init
Users should commit to their project repository using their SourceForge.net username. Repository activity won't be properly attributed if this is not set properly. If not already set, you can by running:
bzr whoami "USERNAME <USERNAME@users.sourceforge.net>"
You can now use whatever combination of "bzr add" and "bzr commit" commands you want to create one or more commits in your local repository.
How to push a local repository
Before you push your files, you need a local Bazaar branch. You can either create one from scratch, convert a repository (e.g. via cvs2bzr or similar), or start with a copy of an existing Bazaar branch.
Bazaar branches are implicitly committed to the central location when it was created by a 'bzr checkout' command. No further configuration is needed in that case.
Now you're ready to commit your changes to the server. In order to push your changes to the server, use the following command:
bzr push bzr+ssh://USERNAME@PROJECTNAME.bzr.sourceforge.net/bzrroot/PROJECTNAME
Once that is done, you will be able to browse your newly-committed content via Loggerhead, clone the repository via either read-only or read/write access methods, push more check-ins, etc.
SourceForge.net performs routine backups for all of our servers and will restore from these backups in the event of catastrophic server failure. We encourage projects to make their own backups of Bazaar data as that data restore can be performed by the project in the event of accidental data destruction by a member of the project team.
Backups of a Bazaar repository may be made using rsync.
Example (replace PROJECTNAME with the UNIX group name of your project):
rsync -av PROJECTNAME.bzr.sourceforge.net::bzrroot/PROJECTNAME/* .