Bazaar-NG ********* .. These documents are formatted as ReStructuredText. You can .. .. convert them to HTML, PDF, etc using the ``python-docutils`` .. .. package. .. *Bazaar-NG* (``bzr``) is a project of `Canonical Ltd`__ to develop an open source distributed version control system that is powerful, friendly, and scalable. The project is at an early stage of development. __ http://canonical.com/ **Note: These documents describe the initial design and are out of date in parts.** For more up-to-date information see the wiki at http://bazaar.canonical.com/ For more information, see the homepage at http://bazaar-ng.org/ User documentation ------------------ * `Project overview/introduction <intro.html>`__ * `Command reference <cmdref.html>`__ -- intended to be user documentation, and gives the best overview at the moment of what the system will feel like to use. Fairly complete. Requirements and general design ------------------------------- * `Various purposes of a VCS <purpose.html>`__ -- taking snapshots and helping with merges is not the whole story. * `Requirements <requirements.html>`__ * `Costs <costs.html>`__ of various factors: time, disk, network, etc. * `Deadly sins <deadly-sins.html>`__ that gcc maintainers suggest we avoid. * `Overview of the whole design <design.html>`__ and miscellaneous small design points. * `File formats <formats.html>`__ * `Random observations <random.html>`__ that don't fit anywhere else yet. Design of particular features ----------------------------- * `Automatic generation of ChangeLogs <changelogs.html>`__ * `Cherry picking <cherry-picking.html>`__ -- merge just selected non-contiguous changes from a branch. * `Common changeset format <common-format.html>`__ for interchange format between VCS. * `Compression <compression.html>`__ of file text for more efficient storage. * `Config specs <config-specs.html>`__ assemble a tree from several places. * `Conflicts <conflicts.html>`_ that can occur during merge-like operations. * `Ignored files <ignore.html>`__ * `Recovering from interrupted operations <interrupted.html>`__ * `Inventory command <inventory.html>`__ * `Branch joins <join-branches.html>`__ represent that all the changes from one branch are integrated into another. * `Kill a version <kill-version.html>`__ to fix a broken commit or wrong message, or to remove confidential information from the history. * `Hash collisions <hashes.html>`__ and weaknesses, and the security implications thereof. * `Layers <layers.html>`__ within the design * `Library interface <library-interface.html>`__ for Python. * `Merge <merge.html>`__ * `Mirroring <mirroring.html>`__ * `Optional edit command <optional-edit.html>`__: sometimes people want to make the working copy read-only, or not present at all. * `Partial commits <partial-commit.html>`__ * `Patch pools <pool.html>`__ to efficiently store related branches. * `Revfiles <revfile.html>`__ store the text history of files. * `Revfiles storing annotations <revfile-annotation.html>`__ * `Revision syntax <revision-syntax.html>`__ -- ``hello.c@12``, etc. * `Roll-up commits <rollup.html>`__ -- a single revision incorporates the changes from several others. * `Scalability <scalability.html>`__ * `Security <security.html>`__ * `Shared branches <shared-branches.html>`__ maintained by more than one person * `Supportability <supportability.html>`__ -- how to handle any bugs or problems in the field. * `Place tags on revisions for easy reference <tagging.html>`__ * `Detecting unchanged files <unchanged.html>`__ * `Merging previously-unrelated branches <unrelated-merge.html>`__ * `Usability principles <usability.html>`__ (very small at the moment) * `<use-cases.html>`__ * `<web-interface.html>`__ * `<workflow.html>`__ Modelling/controlling flow of patches. * `<yaml.html>`__ -- Discussion of using YAML_ as a storage or transmission format. .. _YAML: http://www.yaml.org/ Comparisons to other systems ---------------------------- * `Taxonomy <taxonomy.html>`__: basic questions a VCS must answer. * `Bitkeeper <bitkeeper.html>`__, the proprietary system used by some kernel developers. * `Aegis <compared-aegis.html>`__, a tool focussed on enforcing process and workflow. * `Codeville <compared-codeville.html>`__ has an intruiging but scarcely-documented merge algorithm. * `CVSNT <compared-cvsnt.html>`__, with more Windows support and some merge enhancements. * `OpenCM <compared-opencm.html>`__, another hash-based tool with a good whitepaper. * `PRCS <compared-prcs.html>`__, a non-distributed inventory-based tool. * `GNU Arch <todo-from-arch.html>`__, with many pros and cons. * `Darcs <darcs.html>`__, a merge-focussed tool with good usability. * `Quilt <quilt.html>`__ -- Andrew Morton's patch scripts, popular with kernel maintainers. * `Monotone <monotone.html>`__, Graydon Hoare's hash-based distributed system. * `SVK <svk.html>`__ -- distributed operation stacked on Subversion. * `Sun Teamware <compared-teamware.html>`__ Project management and organization ----------------------------------- * `Notes on how to get a VCS adopted <adoption.html>`__ * `Thanks <thanks.html>`__ to various people * `Extra commands <extra-commands.html>`__ for internal/developer/debugger use. * `Choice of Python as a development language <python.html>`__