Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

What Bazaar is, and what it's for

Software development and collaboration

Bazaar is a tool to help people work on software.

For one person, it makes it easy to maintain different lines of development. Say, for example, a stable version that gets only bugfixes, and a devel version with lots of changes that will, eventually, become the next stable version.

For a group of people, it allows each person to maintain one or more lines of development, which they can then combine with other people's work.

Other kinds of projects

Although Bazaar's major focus is software development, it can be used for other kinds of projects, as well. It works best with textual files, like source code, marked-up text (e.g. HTML), and plaintext. It is less effective with tree-structured data (e.g. XML), and is most limited in dealing with opaque binary files (e.g. Microsoft Word documents).

Low Barriers to Entry

Keeping the barriers to entry low is an important focus of Bazaar.

One side of this is ease of use. We believe that ease of use is bone-deep-- the way a system is structured has a dramatic effect on kinds of interfaces it can support, and on the amount of learning people must do to become productive in it. Bazaar is intended to scale with the needs of the user. People can start a Bazaar project with three simple commands, but if they have special needs, they may require extra commands or more learning.

Another way Bazaar reduces the barriers to entry is its low requirements. It does not require a special server of any kind. To share your work across the Internet, you only need FTP or SFTP access to a web server. It's even easier to share work across a LAN.

Decentralized vs Centralized

The reason we call Bazaar a decentralized VCS is because the most common VCSes are centralized. They have a central server, and most of their operations take place on that system. Centralized systems have both technological and social problems.

Technologically, centralized systems are a single point of failure-- any problems with the central server are problems for all people using it. Centralized systems require access to the central server at all times, so they can't be used when there is no network access, like while travelling.

Socially, centralized systems create a clique of people who can write to the central server, called committers. The people who can't write to the central server can be called non-committers. Non-committers can't use the system to work on their code, so they can't enjoy the other benefits that version control provides. This creates a barrier that prevents some people from participating more fully.

In decentralized systems, none of these problems apply. Anyone who wants to use Bazaar to work on a project can do so, whether or not they can write to the project mainline. They can do it on a train, or during a power failure, and it's not affected by the speed of their network connection.

Some think that the freedom decentralization provides will lead to bad behaviour. We don't think that's a significant problem, and DecentralizedArguments explains why.