Introduction
============

Welcome to the Bazaar Version Control System's guide for system
administrators.  Bazaar is a flexible system that provides many possible
options for serving projects in ways that will hopefully meet your needs.  If
you have requirements that are not met by the current state of the Bazaar
ecosystem, please let us know at bazaar@lists.canonical.com or on Launchpad at
https://launchpad.net/bzr.

Scope of this guide
-------------------

In this guide, we will discuss various techniques for making Bazaar projects
available, migrating from other Version Control Systems, browsing code over
the Web and combining Bazaar with other tools.  In many of these categories,
multiple options exist and we will try to explains the costs and benefits of
the various options.

The intended audience for this guide is the individuals who administer the
computers that will do the serving.  Much of the configuration that we will
discuss requires administrator privileges and we will not necessarily indicate
every point that those privileges are needed.  That said, reading this guide
can also be very helpful for those who are interested in communicating to the
system administrators about the requirements for making full use of Bazaar.

What you need to run a Bazaar server
------------------------------------

Where possible, we will discuss both Unix (including GNU/Linux) and Windows server
environments.  For the purposes of this document, we will consider Mac OS X as
a type of Unix.

In general, Bazaar requires only Python_ 2.4 or greater and the cElementTree_
package (included in Python 2.5 and later) to run.  If you would *optionally*
like to be able to access branches using SFTP, you need `paramiko and
pycrypto`_.

.. _Python: http://www.python.org/
.. _cElementTree: http://effbot.org/zone/element-index.htm
.. _paramiko and pycrypto: http://www.lag.net/paramiko/

For maximum performance, Bazaar can make use of compiled versions of some
critical components of the code.  Pure Python alternatives exist for all of
these components, but they may be considerably slower.  To compile these
extensions, you need a C compiler and the relevant header files from the
Python package.  On GNU/Linux, these may be in a separate package.  Other
operating systems should have the required headers installed by default.

If you are installing a development version of Bazaar, rather than a released
version, you will need Pyrex_ to create the C extensions.  The release
tarballs already have the Pyrex-created C files.

.. _Pyrex: http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/

