4
.. These documents are formatted as ReStructuredText. You can ..
5
.. convert them to HTML, PDF, etc using the ``python-docutils`` ..
9
*Bazaar-NG* (``bzr``) is a project of `Canonical Ltd`__ to develop an
10
open source distributed version control system that is powerful,
11
friendly, and scalable. The project is at an early stage of
14
__ http://canonical.com/
17
**Note:** These documents are in a very preliminary state, and so may
18
be internally or externally inconsistent or redundant. Comments are
19
still very welcome. Please send them to <mbp@sourcefrog.net>.
22
For more information, see the homepage at http://bazaar-ng.org/
29
* `Project overview/introduction <intro.html>`__
31
* `Command reference <cmdref.html>`__ -- intended to be user
32
documentation, and gives the best overview at the moment of what the
33
system will feel like to use. Fairly complete.
35
* `Quick reference <quickref.html>`__ -- single page description of
36
how to use, intended to check it's adequately simple. Incomplete.
38
* `FAQ <faq.html>`__ -- mostly user-oriented FAQ.
41
Requirements and general design
42
-------------------------------
44
* `Various purposes of a VCS <purpose.html>`__ -- taking snapshots and
45
helping with merges is not the whole story.
47
* `Requirements <requirements.html>`__
49
* `Costs <costs.html>`__ of various factors: time, disk, network, etc.
51
* `Deadly sins <deadly-sins.html>`__ that gcc maintainers suggest we avoid.
53
* `Overview of the whole design <design.html>`__ and miscellaneous
56
* `File formats <formats.html>`__
58
* `Random observations <random.html>`__ that don't fit anywhere else yet.
62
Design of particular features
63
-----------------------------
65
* `Automatic generation of ChangeLogs <changelogs.html>`__
67
* `Cherry picking <cherry-picking.html>`__ -- merge just selected non-contiguous changes from a branch.
69
* `Common changeset format <common-format.html>`__ for interchange
72
* `Compression <compression.html>`__ of file text for more efficient storage.
74
* `Config specs <config-specs.html>`__ assemble a tree from several places.
76
* `Conflicts <conflicts.html>`_ that can occur during merge-like
79
* `Ignored files <ignore.html>`__
81
* `Recovering from interrupted operations <interrupted.html>`__
83
* `Inventory command <inventory.html>`__
85
* `Branch joins <join-branches.html>`__ represent that all the changes
86
from one branch are integrated into another.
88
* `Kill a version <kill-version.html>`__ to fix a broken commit or
90
remove confidential information from the history.
92
* `Hash collisions <hashes.html>`__ and weaknesses, and the security
95
* `Layers <layers.html>`__ within the design
97
* `Library interface <library-interface.html>`__ for Python.
99
* `Merge <merge.html>`__
101
* `Mirroring <mirroring.html>`__
103
* `Optional edit command <optional-edit.html>`__: sometimes people
104
want to make the working copy read-only, or not present at all.
106
* `Partial commits <partial-commit.html>`__
108
* `Patch pools <pool.html>`__ to efficiently store related branches.
110
* `Revision syntax <revision-syntax.html>`__ -- ``hello.c@12``, etc.
112
* `Roll-up commits <rollup.html>`__ -- a single revision incorporates
113
the changes from several others.
115
* `Scalability <scalability.html>`__
117
* `Security <security.html>`__
119
* `Shared branches <shared-branches.html>`__ maintained by more than
122
* `Supportability <supportability.html>`__ -- how to handle any bugs
123
or problems in the field.
125
* `Place tags on revisions for easy reference <tagging.html>`__
127
* `Detecting unchanged files <unchanged.html>`__
129
* `Merging previously-unrelated branches <unrelated-merge.html>`__
131
* `Usability principles <usability.html>`__ (very small at the moment)
133
* `<use-cases.html>`__
135
* `<web-interface.html>`__
137
* `<workflow.html>`__ Modelling/controlling flow of patches.
139
* `<yaml.html>`__ -- Discussion of using YAML_ as a storage or transmission format.
141
.. _YAML: http://www.yaml.org/
145
Comparisons to other systems
146
----------------------------
148
* `Taxonomy <taxonomy.html>`__: basic questions a VCS must answer.
150
* `Bitkeeper <bitkeeper.html>`__, the proprietary system used by some
153
* `Aegis <compared-aegis.html>`__, a tool focussed on enforcing
154
process and workflow.
156
* `Codeville <compared-codeville.html>`__ has an intruiging but
157
scarcely-documented merge algorithm.
159
* `CVSNT <compared-cvsnt.html>`__, with more Windows support and some
162
* `OpenCM <compared-opencm.html>`__, another hash-based tool with a
165
* `PRCS <compared-prcs.html>`__, a non-distributed inventory-based tool.
167
* `GNU Arch <todo-from-arch.html>`__, with many pros and cons.
169
* `Darcs <darcs.html>`__, a merge-focussed tool with good usability.
171
* `Quilt <quilt.html>`__ -- Andrew Morton's patch scripts, popular with kernel maintainers.
173
* `Monotone <monotone.html>`__, Graydon Hoare's hash-based distributed system.
175
* `SVK <svk.html>`__ -- distributed operation stacked on Subversion.
177
* `Sun Teamware <compared-teamware.html>`__
180
Project management and organization
181
-----------------------------------
183
* `Notes on how to get a VCS adopted <adoption.html>`__
185
* `Thanks <thanks.html>`__ to various people
187
* `Extra commands <extra-commands.html>`__ for
188
internal/developer/debugger use.
190
* `Choice of Python as a development language <python.html>`__