Bazaar-NG (or bzr) is a project of Canonical to develop an open source
distributed version control system that is powerful, friendly, and
scalable. Version control
means a system that keeps track of
previous revisions of software source code or similar information and
helps people work on it in teams.
Warning: bzr is at an early stage of development, and the design is still changing from week to week. The documents here may be inconsistent with themselves or with the code, and sometimes refer to features that are planned but not yet written. Comments are still very welcome; please sent them to mbp@sourcefrog.net.
There have been many new free version control systems in recent years, many offering novel and fascinating ideas. bzr is an attempt to combine the best features from all of them into a single coherent and simple system.
Vital facts
- Written in Python (but nevertheless fast and easy to install.)
- Runs on Linux, Windows and Mac OS X, or any system with a Python interpreter. (Primarily tested on Ubuntu.)
- Free software, released under the GNU GPL.
- Designed to play well with others: can be called by IDEs, editors, web tools, GUIs, etc through either a Python API or a shell interface, and possibly a C interface in the future. Can support workflow/process tools built on top.
- The user interface is simple and familiar to people with experience from CVS or Subversion: add, mv, diff, status, commit, log, merge, etc all do what you would expect.
- Offers a choice between centralized and decentralized work within a single project: when in the office, you can work on a shared central branch. For experimental changes or offline work you can make a branch on your laptop and merge back in later.
- Preserves history; any previous revision can be recreated. History can be GPG-signed to protect against man-in-the-middle attacks, bad mirrors, server intrusion or data corruption.
- Just one .bzr directory at the top of the tree; it doesn't clutter the tree or get in your face. No wierd ++file--names--0.
Current status
As of March 22, 2005:
- bzr is self-hosting — that is, it is being used to manage its own development. This is a milestone for stability and features.
- The following commands work: init, add, remove, diff, status, commit, ls, log, export, unknowns, info, root, revno, relpath, file-id.
- Recently improved support for operating in subdirectories.
- Better tutorial.
- ignore patterns work.
- Performance has been tested on kernel-sized trees and is reasonably good.
- No delta compression yet, so it uses a lot of disk spaces for long, large branches.
- First snapshot release!