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>.
27
* Bazaar-NG can track the history of a single local branch, similar to
28
RCS. The storage format should be reasonably close to what will be
31
* The following commands work: ``add``, ``remove``, ``commit``,
32
``log``, ``diff`` (whole tree against basis revision), ``status``, ``help``,
33
``export`` (any revision).
35
* Subdirectories and files within them are now supported.
42
* `Project overview/introduction <intro.html>`__
44
* `Command reference <cmdref.html>`__ -- intended to be user
45
documentation, and gives the best overview at the moment of what the
46
system will feel like to use. Fairly complete.
48
* `Quick reference <quickref.html>`__ -- single page description of
49
how to use, intended to check it's adequately simple. Incomplete.
51
* `FAQ <faq.html>`__ -- mostly user-oriented FAQ.
53
* `Demonstration/tutorial <short-demo.html>`__
56
Requirements and general design
57
-------------------------------
59
* `Various purposes of a VCS <purpose.html>`__ -- taking snapshots and
60
helping with merges is not the whole story.
62
* `Requirements <requirements.html>`__
64
* `Costs <costs.html>`__ of various factors: time, disk, network, etc.
66
* `Deadly sins <deadly-sins.html>`__ that gcc maintainers suggest we avoid.
68
* `Overview of the whole design <design.html>`__ and miscellaneous
71
* `File formats <formats.html>`__
73
* `Random observations <random.html>`__ that don't fit anywhere else yet.
77
Design of particular features
78
-----------------------------
80
* `Automatic generation of ChangeLogs <changelogs.html>`__
82
* `Cherry picking <cherry-picking.html>`__ -- merge just selected non-contiguous changes from a branch.
84
* `Common changeset format <common-format.html>`__ for interchange
87
* `Compression <compression.html>`__ of file text for more efficient storage.
89
* `Config specs <config-specs.html>`__ assemble a tree from several places.
91
* `Conflicts <conflicts.html>`_ that can occur during merge-like operations.
93
* `Recovering from interrupted operations <interrupted.html>`__
95
* `Inventory command <inventory.html>`__
97
* `Branch joins <join-branches.html>`__ represent that all the changes
98
from one branch are integrated into another.
100
* `Kill a version <kill-version.html>`__ to fix a broken commit or
102
remove confidential information from the history.
104
* `Hash collisions <hashes.html>`__ and weaknesses, and the security
105
implications thereof.
107
* `Layers <layers.html>`__ within the design
109
* `Library interface <library-interface.html>`__ for Python.
111
* `Merge <merge.html>`__
113
* `Mirroring <mirroring.html>`__
115
* `Optional edit command <optional-edit.html>`__: sometimes people
116
want to make the working copy read-only, or not present at all.
118
* `Partial commits <partial-commit.html>`__
120
* `Patch pools <pool.html>`__ to efficiently store related branches.
122
* `Revision syntax <revision-syntax.html>`__ -- ``hello.c@12``, etc.
124
* `Roll-up commits <rollup.html>`__ -- a single revision incorporates
125
the changes from several others.
127
* `Scalability <scalability.html>`__
129
* `Security <security.html>`__
131
* `Shared branches <shared-branches.html>`__ maintained by more than
134
* `Supportability <supportability.html>`__ -- how to handle any bugs
135
or problems in the field.
137
* `Place tags on revisions for easy reference <tagging.html>`__
139
* `Detecting unchanged files <unchanged.html>`__
141
* `Merging previously-unrelated branches <unrelated-merge.html>`__
143
* `Usability principles <usability.html>`__ (very small at the moment)
145
* `<use-cases.html>`__
147
* `<web-interface.html>`__
149
* `<workflow.html>`__ Modelling/controlling flow of patches.
151
* `<yaml.html>`__ -- Discussion of using YAML_ as a storage or transmission format.
153
.. _YAML: http://www.yaml.org/
157
Comparisons to other systems
158
----------------------------
160
* `Taxonomy <taxonomy.html>`__: basic questions a VCS must answer.
162
* `Bitkeeper <bitkeeper.html>`__, the proprietary system used by some
165
* `Aegis <compared-aegis.html>`__, a tool focussed on enforcing
166
process and workflow.
168
* `Codeville <compared-codeville.html>`__ has an intruiging but
169
scarcely-documented merge algorithm.
171
* `CVSNT <compared-cvsnt.html>`__, with more Windows support and some
174
* `OpenCM <compared-opencm.html>`__, another hash-based tool with a
177
* `PRCS <compared-prcs.html>`__, a non-distributed inventory-based tool.
179
* `GNU Arch <todo-from-arch.html>`__, with many pros and cons.
181
* `Darcs <darcs.html>`__, a merge-focussed tool with good usability.
183
* `Quilt <quilt.html>`__ -- Andrew Morton's patch scripts, popular with kernel maintainers.
185
* `Monotone <monotone.html>`__, Graydon Hoare's hash-based distributed system.
187
* `SVK <svk.html>`__ -- distributed operation stacked on Subversion.
189
* `Sun Teamware <compared-teamware.html>`__
192
Project management and organization
193
-----------------------------------
195
* `Development news <news.html>`__
197
* `Notes on how to get a VCS adopted <adoption.html>`__
199
* `Testing plan <testing.html>`__ -- very sketchy.
201
* `Thanks <thanks.html>`__ to various people
203
* `Roadmap <roadmap.html>`__: High-level order for implementing features.
205
* `<work-order.html>`__: current tasks.
207
* `Extra commands <extra-commands.html>`__ for
208
internal/developer/debugger use.
210
* `Choice of Python as a development language <python.html>`__
216
There are no releases yet.
218
The Bazaar-NG development code may be downloaded using GNU Arch by the
221
tla register-archive http://sourcefrog.net/arch/mbp@sourcefrog.net--2004
222
tla get mbp@sourcefrog.net--2004/bazaar-ng--0 bazaar-ng
224
(By contrast, when Bazaar-NG network operations are complete, a single
225
much shorter command will do.)
227
Note that the current code is under heavy development and so is not
228
guaranteed to do anything useful whatsoever.