5
* Tests updates to ensure proper URL handling, UNICODE support, and
6
proper printing when the user's terminal encoding cannot display
7
the path of a file that has been versioned.
8
``bzr branch`` can take a target URL rather than only a local directory.
9
Branch.get_parent()/set_parent() now save a relative path if possible,
10
and normalize the parent based on root, allowing access across
11
different transports. (John Arbash Meinel, Wouter van Heyst, Martin Pool)
12
(Malone #48906, #42699, #40675, #5281, #3980, #36363, #43689,
15
* On Unix, detect terminal width using an ioctl not just $COLUMNS.
16
Use terminal width for single-line logs from ``bzr log --line`` and
17
pending-merge display. (Robert Widhopf-Fenk, Gustavo Niemeyer)
20
* On Windows, detect terminal width using GetConsoleScreenBufferInfo.
23
* Speedup improvement for 'date:'-revision search. (Guillaume Pinot).
25
* Show the correct number of revisions pushed when pushing a new branch.
28
* 'bzr selftest' now shows a progress bar with the number of tests, and
29
progress made. 'make check' shows tests in -v mode, to be more useful
30
for the PQM status window. (Robert Collins).
32
* 'bzr selftest --benchmark' will run a new benchmarking selftest.
33
'bzr selftest --benchmark --lsprof-timed' will use lsprofile to generate
34
profile data for the individual profiled calls, allowing for fine
35
grained analysis of performance.
36
(Robert Collins, Martin Pool).
38
* 'bzr commit' shows a progress bar. This is useful for commits over sftp
39
where commit can take an appreciable time. (Robert Collins)
41
* 'bzr add' is now less verbose in telling you what ignore globs were
42
matched by files being ignored. Instead it just tells you how many
43
were ignored (because you might reasonably be expecting none to be
44
ignored). 'bzr add -v' is unchanged and will report every ignored
45
file. (Robert Collins).
47
* ftp now has a test server if medusa is installed. As part of testing,
48
ftp support has been improved, including support for supplying a
49
non-standard port. (John Arbash Meinel).
51
* 'bzr log --line' shows the revision number, and uses only the
52
first line of the log message (#5162, Alexander Belchenko;
55
* 'bzr status' has had the --all option removed. The 'bzr ls' command
56
should be used to retrieve all versioned files. (Robert Collins)
58
* 'bzr bundle OTHER/BRANCH' will create a bundle which can be sent
59
over email, and applied on the other end, while maintaining ancestry.
60
This bundle can be applied with either 'bzr merge' or 'bzr pull',
61
the same way you would apply another branch.
62
(John Arbash Meinel, Aaron Bentley)
64
* 'branches.conf' has been changed to 'locations.conf', since it can apply
65
to more locations than just branch locations.
70
* Fix shadowed definition of TestLocationConfig that caused some
71
tests not to run. (#32587, Erik Bågfors, Michael Ellerman,
74
* Fix unnecessary requirement of sign-my-commits that it be run from
75
a working directory. (Martin Pool, Robert Collins)
77
* 'bzr push location' will only remember the push location if it succeeds
78
in connecting to the remote location. (#49742, John Arbash Meinel)
82
* Combine the ignore rules into a single regex rather than looping over
83
them to reduce the threshold where N^2 behaviour occurs in operations
84
like status. (Jan Hudec, Robert Collins).
86
* 'bzr push' should only push the ancestry of the current revision, not
87
all of the history in the repository. This is especially important for
88
shared repositories. (John Arbash Meinel)
90
* bzrlib.delta.compare_trees now iterates in alphabetically sorted order,
91
rather than randomly walking the inventories. (John Arbash Meinel)
93
* Split ``check`` into separate methods on the branch and on the repository,
94
so that it can be specialized in ways that are useful or efficient for
95
different formats. (Martin Pool, Robert Collins)
97
* Deprecate Repository.all_revision_ids; most methods don't really need
98
the global revision graph but only that part leading up to a particular
99
revision. (Martin Pool, Robert Collins)
101
* Add a BzrDirFormat control_formats list which allows for control formats
102
that do not use '.bzr' to store their data - i.e. '.svn', '.hg' etc.
103
(Robert Collins, Jelmer Vernooij).
105
* bzrlib.diff.external_diff can be redirected to any file-like object.
106
Uses subprocess instead of spawnvp.
107
(#4047, #48914, James Henstridge, John Arbash Meinel)
109
* New command line option '--profile-imports', which will install a custom
110
importer to log time to import modules and regex compilation time to
111
sys.stderr (John Arbash Meinel)
117
* setup.py failed to install launchpad plugin. (Martin Pool)
123
* Fix failure to commit a merge in a checkout. (Martin Pool,
124
Robert Collins, Erik Bågfors, #43959)
126
* Nicer messages from 'commit' in the case of renames, and correct
127
messages when a merge has occured. (Robert Collins, Martin Pool)
129
* Separate functionality from assert statements as they are skipped in
130
optimized mode of python. Add the same check to pending merges.
131
(#44443, Olaf Conradi)
135
* Do not show the None revision in output of bzr ancestry. (Olaf Conradi)
137
* Add info on standalone branches without a working tree.
138
(#44155, Olaf Conradi)
140
* Fix bug in knits when raising InvalidRevisionId. (#44284, Olaf Conradi)
144
* Make editor invocation comply with Debian Policy. First check
145
environment variables VISUAL and EDITOR, then try editor from
146
alternatives system. If that all fails, fall back to the pre-defined
147
list of editors. (#42904, Olaf Conradi)
151
* New 'register-branch' command registers a public branch into
152
Launchpad.net, where it can be associated with bugs, etc.
153
(Martin Pool, Bjorn Tillenius, Robert Collins)
157
* New public api in InventoryEntry - 'describe_change(old, new)' which
158
provides a human description of the changes between two old and
159
new. (Robert Collins, Martin Pool)
163
* Fix test case for bzr info in upgrading a standalone branch to metadir,
164
uses bzrlib api now. (Olaf Conradi)
168
NOTES WHEN UPGRADING:
170
Release 0.8 of bzr introduces a new format for history storage, called
171
'knit', as an evolution of to the 'weave' format used in 0.7. Local
172
and remote operations are faster using knits than weaves. Several
173
operations including 'init', 'init-repo', and 'upgrade' take a
174
--format option that controls this. Branching from an existing branch
175
will keep the same format.
177
It is possible to merge, pull and push between branches of different
178
formats but this is slower than moving data between homogenous
179
branches. It is therefore recommended (but not required) that you
180
upgrade all branches for a project at the same time. Information on
181
formats is shown by 'bzr info'.
183
bzr 0.8 now allows creation of 'repositories', which hold the history
184
of files and revisions for several branches. Previously bzr kept all
185
the history for a branch within the .bzr directory at the root of the
186
branch, and this is still the default. To create a repository, use
187
the new 'bzr init-repo' command. Branches exist as directories under
188
the repository and contain just a small amount of information
189
indicating the current revision of the branch.
191
bzr 0.8 also supports 'checkouts', which are similar to in cvs and
192
subversion. Checkouts are associated with a branch (optionally in a
193
repository), which contains all the historical information. The
194
result is that a checkout can be deleted without losing any
195
already-committed revisions. A new 'update' command is also available.
197
Repositories and checkouts are not supported with the 0.7 storage
198
format. To use them you must upgrad to either knits, or to the
199
'metaweave' format, which uses weaves but changes the .bzr directory
205
* Sftp paths can now be relative, or local, according to the lftp
206
convention. Paths now take the form:
207
sftp://user:pass@host:port/~/relative/path
209
sftp://user:pass@host:port/absolute/path
211
* The FTP transport now tries to reconnect after a temporary
212
failure. ftp put is made atomic. (Matthieu Moy)
214
* The FTP transport now maintains a pool of connections, and
215
reuses them to avoid multiple connections to the same host (like
216
sftp did). (Daniel Silverstone)
218
* The bzr_man.py file has been removed. To create the man page now,
219
use ./generate_docs.py man. The new program can also create other files.
220
Run "python generate_docs.py --help" for usage information. (Hans
221
Ulrich Niedermann & James Blackwell).
223
* Man Page now gives full help (James Blackwell). Help also updated to
224
reflect user config now being stored in .bazaar (Hans Ulrich
227
* It's now possible to set aliases in bazaar.conf (Erik Bågfors)
229
* Pull now accepts a --revision argument (Erik Bågfors)
231
* 'bzr re-sign' now allows multiple revisions to be supplied on the command
232
line. You can now use the following command to sign all of your old commits.
233
find .bzr/revision-store// -name my@email-* \
234
| sed 's/.*\/\/..\///' \
237
* Upgrade can now upgrade over the network. (Robert Collins)
239
* Two new commands 'bzr checkout' and 'bzr update' allow for CVS/SVN-alike
240
behaviour. By default they will cache history in the checkout, but
241
with --lightweight almost all data is kept in the master branch.
244
* 'revert' unversions newly-versioned files, instead of deleting them.
246
* 'merge' is more robust. Conflict messages have changed.
248
* 'merge' and 'revert' no longer clobber existing files that end in '~' or
251
* Default log format can be set in configuration and plugins can register
252
their own formatters. (Erik Bågfors)
254
* New 'reconcile' command will check branch consistency and repair indexes
255
that can become out of sync in pre 0.8 formats. (Robert Collins,
258
* New 'bzr init --format' and 'bzr upgrade --format' option to control
259
what storage format is created or produced. (Robert Collins,
262
* Add parent location to 'bzr info', if there is one. (Olaf Conradi)
264
* New developer commands 'weave-list' and 'weave-join'. (Martin Pool)
266
* New 'init-repository' command, plus support for repositories in 'init'
267
and 'branch' (Aaron Bentley, Erik Bågfors, Robert Collins)
269
* Improve output of 'info' command. Show all relevant locations related to
270
working tree, branch and repository. Use kibibytes for binary quantities.
271
Fix off-by-one error in missing revisions of working tree. Make 'info'
272
work on branches, repositories and remote locations. Show locations
273
relative to the shared repository, if applicable. Show locking status
274
of locations. (Olaf Conradi)
276
* Diff and merge now safely handle binary files. (Aaron Bentley)
278
* 'pull' and 'push' now normalise the revision history, so that any two
279
branches with the same tip revision will have the same output from 'log'.
282
* 'merge' accepts --remember option to store parent location, like 'push'
283
and 'pull'. (Olaf Conradi)
285
* bzr status and diff when files given as arguments do not exist
286
in the relevant trees. (Martin Pool, #3619)
288
* Add '.hg' to the default ignore list. (Martin Pool)
290
* 'knit' is now the default disk format. This improves disk performance and
291
utilization, increases incremental pull performance, robustness with SFTP
292
and allows checkouts over SFTP to perform acceptably.
293
The initial Knit code was contributed by Johan Rydberg based on a
294
specification by Martin Pool.
295
(Robert Collins, Aaron Bentley, Johan Rydberg, Martin Pool).
297
* New tool to generate all-in-one html version of the manual. (Alexander
300
* Hitting CTRL-C while doing an SFTP push will no longer cause stale locks
301
to be left in the SFTP repository. (Robert Collins, Martin Pool).
303
* New option 'diff --prefix' to control how files are named in diff
304
output, with shortcuts '-p0' and '-p1' corresponding to the options for
305
GNU patch. (Alexander Belchenko, Goffredo Baroncelli, Martin Pool)
307
* Add --revision option to 'annotate' command. (Olaf Conradi)
309
* Add --revision option to 'annotate' command. (Olaf Conradi)
311
* If bzr shows an unexpected revision-history after pulling (perhaps due
312
to a reweave) it can now be corrected by 'bzr reconcile'.
317
* Commit is now verbose by default, and shows changed filenames and the
318
new revision number. (Robert Collins, Martin Pool)
320
* Unify 'mv', 'move', 'rename'. (#5379, Matthew Fuller)
322
* 'bzr -h' shows help. (#35940, Martin Pool, Ian Bicking)
324
* Make 'pull' and 'push' remember location on failure using --remember.
327
* For compatibility, make old format for using weaves inside metadir
328
available as 'metaweave' format. Rename format 'metadir' to 'default'.
329
Clean up help for option --format in commands 'init', 'init-repo' and
330
'upgrade'. (Olaf Conradi)
334
* The internal storage of history, and logical branch identity have now
335
been split into Branch, and Repository. The common locking and file
336
management routines are now in bzrlib.lockablefiles.
337
(Aaron Bentley, Robert Collins, Martin Pool)
339
* Transports can now raise DependencyNotPresent if they need a library
340
which is not installed, and then another implementation will be
343
* Remove obsolete (and no-op) `decode` parameter to `Transport.get`.
346
* Using Tree Transform for merge, revert, tree-building
348
* WorkingTree.create, Branch.create, WorkingTree.create_standalone,
349
Branch.initialize are now deprecated. Please see BzrDir.create_* for
350
replacement API's. (Robert Collins)
352
* New BzrDir class represents the .bzr control directory and manages
353
formatting issues. (Robert Collins)
355
* New repository.InterRepository class encapsulates Repository to
356
Repository actions and allows for clean selection of optimised code
357
paths. (Robert Collins)
359
* bzrlib.fetch.fetch and bzrlib.fetch.greedy_fetch are now deprecated,
360
please use 'branch.fetch' or 'repository.fetch' depending on your
361
needs. (Robert Collins)
363
* deprecated methods now have a 'is_deprecated' flag on them that can
364
be checked, if you need to determine whether a given callable is
365
deprecated at runtime. (Robert Collins)
367
* Progress bars are now nested - see
368
bzrlib.ui.ui_factory.nested_progress_bar. (Robert Collins, Robey Pointer)
370
* New API call get_format_description() for each type of format.
373
* Changed branch.set_parent() to accept None to remove parent.
376
* Deprecated BzrError AmbiguousBase. (Olaf Conradi)
378
* WorkingTree.branch is now a read only property. (Robert Collins)
380
* bzrlib.ui.text.TextUIFactory now accepts a bar_type parameter which
381
can be None or a factory that will create a progress bar. This is
382
useful for testing or for overriding the bzrlib.progress heuristic.
385
* New API method get_physical_lock_status() to query locks present on a
386
transport. (Olaf Conradi)
388
* Repository.reconcile now takes a thorough keyword parameter to allow
389
requesting an indepth reconciliation, rather than just a data-loss
390
check. (Robert Collins)
392
* bzrlib.ui.ui_factory protocol now supports 'get_boolean' to prompt
393
the user for yes/no style input. (Robert Collins)
397
* SFTP tests now shortcut the SSH negotiation, reducing test overhead
398
for testing SFTP protocol support. (Robey Pointer)
400
* Branch formats are now tested once per implementation (see bzrlib.
401
tests.branch_implementations. This is analagous to the transport
402
interface tests, and has been followed up with working tree,
403
repository and BzrDir tests. (Robert Collins)
405
* New test base class TestCaseWithTransport provides a transport aware
406
test environment, useful for testing any transport-interface using
407
code. The test suite option --transport controls the transport used
408
by this class (when its not being used as part of implementation
409
contract testing). (Robert Collins)
411
* Close logging handler on disabling the test log. This will remove the
412
handler from the internal list inside python's logging module,
413
preventing shutdown from closing it twice. (Olaf Conradi)
415
* Move test case for uncommit to blackbox tests. (Olaf Conradi)
417
* run_bzr and run_bzr_captured now accept a 'stdin="foo"' parameter which
418
will provide String("foo") to the command as its stdin.