~bzr-pqm/bzr/bzr.dev

6 by mbp at sourcefrog
import all docs from arch
1
Bazaar-NG
2
*********
3
4
..   These documents are formatted as ReStructuredText.  You can    ..
5
..   convert them to HTML, PDF, etc using the ``python-docutils``   ..
6
..   package.                                                       ..
7
8
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
12
development.
13
14
__ http://canonical.com/
15
16
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>.
20
21
22
Summary status
23
--------------
24
25
(as of 2005-02-23)
26
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
29
  used for 1.0.
30
31
* The following commands work: ``add``, ``remove``, ``commit``,
32
  ``log``, ``diff`` (whole tree against basis revision), ``status``, ``help``,
33
  ``export`` (any revision).
34
35
* Subdirectories and files within them are now supported.
36
37
38
39
User documentation
40
------------------
41
42
* `Project overview/introduction <intro.html>`__
43
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.
47
48
* `Quick reference <quickref.html>`__ -- single page description of
49
  how to use, intended to check it's adequately simple.  Incomplete.
50
51
* `FAQ <faq.html>`__ -- mostly user-oriented FAQ.
52
53
* `Demonstration/tutorial <short-demo.html>`__
54
55
56
Requirements and general design
57
-------------------------------
58
59
* `Various purposes of a VCS <purpose.html>`__ -- taking snapshots and
60
  helping with merges is not the whole story.
61
62
* `Requirements <requirements.html>`__
63
64
* `Costs <costs.html>`__ of various factors: time, disk, network, etc.
65
66
* `Deadly sins <deadly-sins.html>`__ that gcc maintainers suggest we avoid.
67
68
* `Overview of the whole design <design.html>`__ and miscellaneous
69
  small design points.
70
71
* `File formats <formats.html>`__
72
73
* `Random observations <random.html>`__ that don't fit anywhere else yet.
74
75
76
77
Design of particular features
78
-----------------------------
79
80
* `Automatic generation of ChangeLogs <changelogs.html>`__
81
82
* `Cherry picking <cherry-picking.html>`__ -- merge just selected non-contiguous changes  from a branch.
83
84
* `Common changeset format <common-format.html>`__ for  interchange
85
  format between VCS.
86
87
* `Compression <compression.html>`__ of file text for more efficient storage.
88
89
* `Config specs <config-specs.html>`__ assemble a tree from several places.
90
91
* `Conflicts <conflicts.html>`_ that can occur during merge-like operations.
92
93
* `Recovering from interrupted operations <interrupted.html>`__
94
95
* `Inventory command <inventory.html>`__
96
97
* `Branch joins <join-branches.html>`__ represent that all the changes
98
  from one branch are integrated into another.
99
100
* `Kill a version <kill-version.html>`__ to fix a broken commit or
101
  wrong message, or to
102
  remove confidential information from the history.
103
104
* `Hash collisions <hashes.html>`__ and weaknesses, and the security
105
  implications thereof.
106
107
* `Layers <layers.html>`__ within the design
108
109
* `Library interface <library-interface.html>`__ for Python.
110
111
* `Merge <merge.html>`__
112
113
* `Mirroring <mirroring.html>`__
114
115
* `Optional edit command <optional-edit.html>`__: sometimes people
116
  want to make the  working copy read-only, or not present at all.
117
118
* `Partial commits <partial-commit.html>`__
119
120
* `Patch pools <pool.html>`__ to efficiently store related branches.
121
122
* `Revision syntax <revision-syntax.html>`__ -- ``hello.c@12``, etc.
123
124
* `Roll-up commits <rollup.html>`__ -- a single revision incorporates
125
  the changes from several others.
126
127
* `Scalability <scalability.html>`__
128
129
* `Security <security.html>`__
130
131
* `Shared branches <shared-branches.html>`__ maintained by more than
132
  one person
133
134
* `Supportability <supportability.html>`__ -- how to handle any bugs
135
  or problems in the field.
136
137
* `Place tags on revisions for easy reference <tagging.html>`__
138
139
* `Detecting unchanged files <unchanged.html>`__
140
   
141
* `Merging previously-unrelated branches <unrelated-merge.html>`__
142
143
* `Usability principles <usability.html>`__ (very small at the moment)
144
145
* `<use-cases.html>`__
146
147
* `<web-interface.html>`__
148
149
* `<workflow.html>`__ Modelling/controlling flow of patches.
150
151
* `<yaml.html>`__ --  Discussion of using YAML_ as a storage or transmission format.
152
153
.. _YAML: http://www.yaml.org/
154
155
156
157
Comparisons to other systems
158
----------------------------
159
160
* `Taxonomy <taxonomy.html>`__: basic questions a VCS must answer.
161
162
* `Bitkeeper <bitkeeper.html>`__, the proprietary system used by some
163
  kernel developers.
164
165
* `Aegis <compared-aegis.html>`__, a tool focussed on enforcing
166
  process and workflow.
167
168
* `Codeville <compared-codeville.html>`__ has an intruiging but
169
  scarcely-documented merge algorithm.
170
171
* `CVSNT <compared-cvsnt.html>`__, with more Windows support and some
172
  merge enhancements.
173
174
* `OpenCM <compared-opencm.html>`__, another hash-based tool with a
175
  good whitepaper.
176
177
* `PRCS <compared-prcs.html>`__, a non-distributed inventory-based tool.
178
179
* `GNU Arch <todo-from-arch.html>`__, with many pros and cons.
180
181
* `Darcs <darcs.html>`__, a merge-focussed tool with good usability.
182
183
* `Quilt <quilt.html>`__ -- Andrew Morton's patch scripts, popular with kernel maintainers.
184
185
* `Monotone <monotone.html>`__, Graydon Hoare's hash-based distributed system.
186
187
* `SVK <svk.html>`__ --     distributed operation stacked on Subversion.
188
189
* `Sun Teamware <compared-teamware.html>`__
190
191
192
Project management and organization
193
-----------------------------------
194
195
* `Development news <news.html>`__
196
197
* `Notes on how to get a VCS adopted <adoption.html>`__
198
199
* `Testing plan <testing.html>`__ -- very sketchy.
200
201
* `Thanks <thanks.html>`__ to various people
202
203
* `Roadmap <roadmap.html>`__: High-level order for implementing features.
204
205
* `<work-order.html>`__: current tasks.
206
207
* `Extra commands <extra-commands.html>`__ for
208
  internal/developer/debugger use.
209
210
* `Choice of Python as a development language <python.html>`__
211
212
213
Download
214
--------
215
216
There are no releases yet.
217
218
The Bazaar-NG development code may be downloaded using GNU Arch by the
219
following steps::
220
221
   tla register-archive http://sourcefrog.net/arch/mbp@sourcefrog.net--2004
222
   tla get mbp@sourcefrog.net--2004/bazaar-ng--0  bazaar-ng
223
224
(By contrast, when Bazaar-NG network operations are complete, a single
225
much shorter command will do.)
226
227
Note that the current code is under heavy development and so is not
228
guaranteed to do anything useful whatsoever.
229