5
* ``bzr rm`` now does not insist on ``--force`` to delete files that
6
have been renamed but not otherwise modified. (Marius Kruger,
11
* Don't show "dots" progress indicators when run non-interactively, such
12
as from cron. (Martin Pool)
14
* ``info`` now formats locations more nicely and lists "submit" and
15
"public" branches (Aaron Bentley)
17
* New ``pack`` command that will trigger database compression within
18
the repository (Robert Collins)
20
* Implement ``_KnitIndex._load_data`` in a pyrex extension. The pyrex
21
version is approximately 2-3x faster at parsing a ``.kndx`` file.
22
Which yields a measurable improvement for commands which have to
23
read from the repository, such as a 1s => 0.75s improvement in
24
``bzr diff`` when there are changes to be shown. (John Arbash Meinel)
26
* Merge is now faster. Depending on the scenario, it can be more than 2x
27
faster. (Aaron Bentley)
29
* Give a clearer warning, and allow ``python setup.py install`` to
30
succeed even if pyrex is not available.
35
* Deprecated dictionary ``bzrlib.option.SHORT_OPTIONS`` removed.
36
Options are now required to provide a help string and it must
37
comply with the style guide by being one or more sentences with an
38
initial capital and final period. (Martin Pool)
42
* merge now uses iter_changes to calculate changes, which makes room for
43
future performance increases. It is also more consistent with other
44
operations that perform comparisons, and reduces reliance on
45
Tree.inventory. (Aaron Bentley)
47
* Most functions now accept ``bzrlib.revision.NULL_REVISION`` to indicate
48
the null revision, and consider using ``None`` for this purpose
49
deprecated. (Aaron Bentley)
53
* Remove selftest ``--clean-output``, ``--numbered-dirs`` and
54
``--keep-output`` options, which are obsolete now that tests
55
are done within directories in $TMPDIR. (Martin Pool)
58
bzr 0.18rc1 2007-07-10
62
* Do not suppress pipe errors, etc. in non-display commands
63
(Alexander Belchenko, #87178)
65
* Display a useful error message when the user requests to annotate
66
a file that is not present in the specified revision.
67
(James Westby, #122656)
69
* Commands that use status flags now have a reference to 'help
70
status-flags'. (Daniel Watkins, #113436)
72
* Work around python-2.4.1 inhability to correctly parse the
73
authentication header.
74
(Vincent Ladeuil, #121889)
76
* Use exact encoding for merge directives. (Adeodato Simó, #120591)
78
* Fix tempfile permissions error in smart server tar bundling under
79
Windows. (Martin_, #119330)
81
* Fix detection of directory entries in the inventory. (James Westby)
83
* Fix handling of http code 400: Bad Request When issuing too many ranges.
84
(Vincent Ladeuil, #115209)
86
* Issue a CONNECT request when connecting to an https server
87
via a proxy to enable SSL tunneling.
88
(Vincent Ladeuil, #120678)
90
* Fix ``bzr log -r`` to support selecting merge revisions, both
91
individually and as part of revision ranges.
94
* Don't leave cruft behind when failing to acquire a lockdir.
95
(Martin Pool, #109169)
97
* Don't use the '-f' strace option during tests.
98
(Vincent Ladeuil, #102019).
100
* Warn when setting ``push_location`` to a value that will be masked by
101
locations.conf. (Aaron Bentley, #122286)
103
* Fix commit ordering in corner case (Aaron Bentley, #94975)
105
* Make annotate behave in a non-ASCII world (Adeodato Simó).
109
* The --lsprof-file option now dumps a text rendering of the profiling
110
information if the filename ends in ".txt". It will also convert the
111
profiling information to a format suitable for KCacheGrind if the
112
output filename ends in ".callgrind". Fixes to the lsprofcalltree
113
conversion process by Jean Paul Calderone and Itamar were also merged.
114
See http://ddaa.net/blog/python/lsprof-calltree. (Ian Clatworthy)
116
* ``info`` now defaults to non-verbose mode, displaying only paths and
117
abbreviated format info. ``info -v`` displays all the information
118
formerly displayed by ``info``. (Aaron Bentley, Adeodato Simó)
120
* ``bzr missing`` now has better option names ``--this`` and ``--other``.
123
* The internal ``weave-list`` command has become ``versionedfile-list``,
124
and now lists knits as well as weaves. (Aaron Bentley)
126
* Automatic merge base selection uses a faster algorithm that chooses
127
better bases in criss-cross merge situations (Aaron Bentley)
129
* Progress reporting in ``commit`` has been improved. The various logical
130
stages are now reported on as follows, namely:
132
* Collecting changes [Entry x/y] - Stage n/m
133
* Saving data locally - Stage n/m
134
* Uploading data to master branch - Stage n/m
135
* Updating the working tree - Stage n/m
136
* Running post commit hooks - Stage n/m
138
If there is no master branch, the 3rd stage is omitted and the total
139
number of stages is adjusted accordingly.
141
Each hook that is run after commit is listed with a name (as hooks
142
can be slow it is useful feedback).
143
(Ian Clatworthy, Robert Collins)
145
* Various operations that are now faster due to avoiding unnecessary
146
topological sorts. (Aaron Bentley)
148
* Make merge directives robust against broken bundles. (Aaron Bentley)
150
* The lsprof filename note is emitted via trace.note(), not standard
151
output. (Aaron Bentley)
153
* ``bzrlib`` now exports explicit API compatibility information to assist
154
library users and plugins. See the ``bzrlib.api`` module for details.
157
* Remove unnecessary lock probes when acquiring a lockdir.
160
* ``bzr --version`` now shows the location of the bzr log file, which
161
is especially useful on Windows. (Martin Pool)
163
* -D now supports hooks to get debug tracing of hooks (though its currently
164
minimal in nature). (Robert Collins)
166
* Long log format reports deltas on merge revisions.
167
(John Arbash Meinel, Kent Gibson)
169
* Make initial push over ftp more resilient. (John Arbash Meinel)
171
* Print a summary of changes for update just like pull does.
172
(Daniel Watkins, #113990)
174
* Add a -Dhpss option to trace smart protocol requests and responses.
180
``bzrlib.repository.RepositoryTestProviderAdapter`` has been moved
181
to ``bzrlib.tests.repository_implementations``;
182
``bzrlib.repository.InterRepositoryTestProviderAdapter`` has been moved
183
to ``bzrlib.tests.interrepository_implementations``;
184
``bzrlib.transport.TransportTestProviderAdapter`` has moved to
185
``bzrlib.tests.test_transport_implementations``.
186
``bzrlib.branch.BranchTestProviderAdapter`` has moved to
187
``bzrlib.tests.branch_implementations``.
188
``bzrlib.bzrdir.BzrDirTestProviderAdapter`` has moved to
189
``bzrlib.tests.bzrdir_implementations``.
190
``bzrlib.versionedfile.InterVersionedFileTestProviderAdapter`` has moved
191
to ``bzrlib.tests.interversionedfile_implementations``.
192
``bzrlib.store.revision.RevisionStoreTestProviderAdapter`` has moved to
193
``bzrlib.tests.revisionstore_implementations``.
194
``bzrlib.workingtree.WorkingTreeTestProviderAdapter`` has moved to
195
``bzrlib.tests.workingtree_implementations``.
196
These changes are an API break in the testing infrastructure only.
199
* Relocate TestCaseWithRepository to be more central. (Robert Collins)
201
* ``bzrlib.add.smart_add_tree`` will no longer perform glob expansion on
202
win32. Callers of the function should do this and use the new
203
``MutableTree.smart_add`` method instead. (Robert Collins)
205
* ``bzrlib.add.glob_expand_for_win32`` is now
206
``bzrlib.win32utils.glob_expand``. (Robert Collins)
208
* ``bzrlib.add.FastPath`` is now private and moved to
209
``bzrlib.mutabletree._FastPath``. (Robert Collins, Martin Pool)
211
* ``LockDir.wait`` removed. (Martin Pool)
215
* New SMTPConnection class to unify email handling. (Adeodato Simó)
217
* Fix documentation of BzrError. (Adeodato Simó)
219
* Make BzrBadParameter an internal error. (Adeodato Simó)
221
* Remove use of 'assert False' to raise an exception unconditionally.
224
* Give a cleaner error when failing to decode knit index entry.
227
* TreeConfig would mistakenly search the top level when asked for options
228
from a section. It now respects the section argument and only
229
searches the specified section. (James Westby)
231
* Improve ``make api-docs`` output. (John Arbash Meinel)
233
* Use os.lstat rather than os.stat for osutils.make_readonly and
234
osutils.make_writeable. This makes the difftools plugin more
235
robust when dangling symlinks are found. (Elliot Murphy)
237
* New ``-Dlock`` option to log (to ~/.bzr.log) information on when
238
lockdirs are taken or released. (Martin Pool)
240
* ``bzrlib`` Hooks are now nameable using ``Hooks.name_hook``. This
241
allows a nicer UI when hooks are running as the current hook can
242
be displayed. (Robert Collins)
244
* ``Transport.get`` has had its interface made more clear for ease of use.
245
Retrieval of a directory must now fail with either 'PathError' at open
246
time, or raise 'ReadError' on a read. (Robert Collins)
248
* New method ``_maybe_expand_globs`` on the ``Command`` class for
249
dealing with unexpanded glob lists - e.g. on the win32 platform. This
250
was moved from ``bzrlib.add._prepare_file_list``. (Robert Collins)
252
* ``bzrlib.add.smart_add`` and ``bzrlib.add.smart_add_tree`` are now
253
deprecated in favour of ``MutableTree.smart_add``. (Robert Collins,
256
* New method ``external_url`` on Transport for obtaining the url to
257
hand to external processes. (Robert Collins)
259
* Teach windows installers to build pyrex/C extensions.
260
(Alexander Belchenko)
264
* Removed the ``--keep-output`` option from selftest and clean up test
265
directories as they're used. This reduces the IO load from
266
running the test suite and cuts the time by about half.
267
(Andrew Bennetts, Martin Pool)
269
* Add scenarios as a public attribute on the TestAdapter classes to allow
270
modification of the generated scenarios before adaption and easier
271
testing. (Robert Collins)
273
* New testing support class ``TestScenarioApplier`` which multiplies
274
out a single teste by a list of supplied scenarios. (RobertCollins)
276
* Setting ``repository_to_test_repository`` on a repository_implementations
277
test will cause it to be called during repository creation, allowing the
278
testing of repository classes which are not based around the Format
279
concept. For example a repository adapter can be tested in this manner,
280
by altering the repository scenarios to include a scenario that sets this
281
attribute during the test parameterisation in
282
``bzrlib.tests.repository.repository_implementations``. (Robert Collins)
284
* Clean up many of the APIs for blackbox testing of Bazaar. The standard
285
interface is now self.run_bzr. The command to run can be passed as
286
either a list of parameters, a string containing the command line, or
287
(deprecated) varargs parameters. (Martin Pool)
289
* The base TestCase now isolates tests from -D parameters by clearing
290
``debug.debug_flags`` and restores it afterwards. (Robert Collins)
292
* Add a relpath parameter to get_transport methods in test framework to
293
avoid useless cloning.
294
(Vincent Ladeuil, #110448)
301
* Fix crash of commit due to wrong lookup of filesystem encoding.
302
(Colin Watson, #120647)
304
* Revert logging just to stderr in commit as broke unicode filenames.
305
(Aaron Bentley, Ian Clatworthy, #120930)
308
bzr 0.17rc1 2007-06-12
310
NOTES WHEN UPGRADING:
312
* The kind() and is_executable() APIs on the WorkingTree interface no
313
longer implicitly (read) locks and unlocks the tree. This *might*
314
impact some plug-ins and tools using this part of the API. If you find
315
an issue that may be caused by this change, please let us know,
316
particularly the plug-in/tool maintainer. If encountered, the API
317
fix is to surround kind() and is_executable() calls with lock_read()
318
and unlock() like so::
320
work_tree.lock_read()
322
kind = work_tree.kind(...)
327
* Rework of LogFormatter API to provide beginning/end of log hooks and to
328
encapsulate the details of the revision to be logged in a LogRevision
330
In long log formats, merge revision ids are only shown when --show-ids
331
is specified, and are labelled "revision-id:", as per mainline
332
revisions, instead of "merged:". (Kent Gibson)
334
* New ``BranchBuilder`` API which allows the construction of particular
335
histories quickly. Useful for testing and potentially other applications
336
too. (Robert Collins)
340
* There are two new help topics, working-trees and repositories that
341
attempt to explain these concepts. (James Westby, John Arbash Meinel,
344
* Added ``bzr log --limit`` to report a limited number of revisions.
347
* Revert does not try to preserve file contents that were originally
348
produced by reverting to a historical revision. (Aaron Bentley)
350
* ``bzr log --short`` now includes ``[merge]`` for revisions which
351
have more than one parent. This is a small improvement to help
352
understanding what changes have occurred
353
(John Arbash Meinel, #83887)
355
* TreeTransform avoids many renames when contructing large trees,
356
improving speed. 3.25x speedups have been observed for construction of
357
kernel-sized-trees, and checkouts are 1.28x faster. (Aaron Bentley)
359
* Commit on large trees is now faster. In my environment, a commit of
360
a small change to the Mozilla tree (55k files) has dropped from
361
66 seconds to 32 seconds. For a small tree of 600 files, commit of a
362
small change is 33% faster. (Ian Clatworthy)
364
* New --create-prefix option to bzr init, like for push. (Daniel Watkins,
369
* ``bzr push`` should only connect to the remote location one time.
370
We have been connecting 3 times because we forget to pass around
371
the Transport object. This adds ``BzrDir.clone_on_transport()``, so
372
that we can pass in the Transport that we already have.
373
(John Arbash Meinel, #75721)
375
* ``DirState.set_state_from_inventory()`` needs to properly order
376
based on split paths, not just string paths.
377
(John Arbash Meinel, #115947)
379
* Let TestUIFactoy encode the password prompt with its own stdout.
380
(Vincent Ladeuil, #110204)
382
* pycurl should take use the range header that takes the range hint
384
(Vincent Ladeuil, #112719)
386
* WorkingTree4.get_file_sha1 no longer raises an exception when invoked
387
on a missing file. (Aaron Bentley, #118186)
389
* WorkingTree.remove works correctly with tree references, and when pwd is
390
not the tree root. (Aaron Bentley)
392
* Merge no longer fails when a file is renamed in one tree and deleted
393
in the other. (Aaron Bentley, #110279)
395
* ``revision-info`` now accepts dotted revnos, doesn't require a tree,
396
and defaults to the last revision (Matthew Fuller, #90048)
398
* Tests no longer fail when BZR_REMOTE_PATH is set in the environment.
399
(Daniel Watkins, #111958)
401
* ``bzr branch -r revid:foo`` can be used to branch any revision in
402
your repository. (Previously Branch6 only supported revisions in your
403
mainline). (John Arbash Meinel, #115343)
409
* Handle when you have 2 directories with similar names, but one has a
410
hyphen. (``'abc'`` versus ``'abc-2'``). The WT4._iter_changes
411
iterator was using direct comparison and ``'abc/a'`` sorts after
412
``'abc-2'``, but ``('abc', 'a')`` sorts before ``('abc-2',)``.
413
(John Arbash Meinel, #111227)
415
* Handle when someone renames a file on disk without telling bzr.
416
Previously we would report the first file as missing, but not show
417
the new unknown file. (John Arbash Meinel, #111288)
419
* Avoid error when running hooks after pulling into or pushing from
420
a branch bound to a smartserver branch. (Martin Pool, #111968)
424
* Move developer documentation to doc/developers/. This reduces clutter in
425
the root of the source tree and allows HACKING to be split into multiple
426
files. (Robert Collins, Alexander Belchenko)
428
* Clean up the ``WorkingTree4._iter_changes()`` internal loops as well as
429
``DirState.update_entry()``. This optimizes the core logic for ``bzr
430
diff`` and ``bzr status`` significantly improving the speed of
431
both. (John Arbash Meinel)
433
bzr 0.16rc2 2007-04-30
437
* Handle the case when you delete a file, and then rename another file
438
on top of it. Also handle the case of ``bzr rm --keep foo``. ``bzr
439
status`` should show the removed file and an unknown file in its
440
place. (John Arbash Meinel, #109993)
442
* Bundles properly read and write revision properties that have an
443
empty value. And when the value is not ASCII.
444
(John Arbash Meinel, #109613)
446
* Fix the bzr commit message to be in text mode.
447
(Alexander Belchenko, #110901)
449
* Also handle when you rename a file and create a file where it used
450
to be. (John Arbash Meinel, #110256)
452
* ``WorkingTree4._iter_changes`` should not descend into unversioned
453
directories. (John Arbash Meinel, #110399)
455
bzr 0.16rc1 2007-04-26
457
NOTES WHEN UPGRADING:
459
* ``bzr remove`` and ``bzr rm`` will now remove the working file, if
460
it could be recovered again.
461
This has been done for consistency with svn and the unix rm command.
462
The old ``remove`` behaviour has been retained in the new option
463
``bzr remove --keep``, which will just stop versioning the file,
465
``bzr remove --force`` have been added which will always delete the
467
``bzr remove`` is also more verbose.
468
(Marius Kruger, #82602)
472
5
* Merge directives can now be supplied as input to `merge` and `pull`,
473
6
like bundles can. (Aaron Bentley)
475
* Sending the SIGQUIT signal to bzr, which can be done on Unix by
476
pressing Control-Backslash, drops bzr into a debugger. Type ``'c'``
477
to continue. This can be disabled by setting the environment variable
478
``BZR_SIGQUIT_PDB=0``. (Martin Pool)
480
* selftest now supports --list-only to list tests instead of running
481
them. (Ian Clatworthy)
483
* selftest now supports --exclude PATTERN (or -x PATTERN) to exclude
484
tests with names that match that regular expression.
485
(Ian Clatworthy, #102679)
487
* selftest now supports --randomize SEED to run tests in a random order.
488
SEED is typically the value 'now' meaning 'use the current time'.
489
(Ian Clatworthy, #102686)
491
* New option ``--fixes`` to commit, which stores bug fixing annotations as
492
revision properties. Built-in support for Launchpad, Debian, Trac and
493
Bugzilla bug trackers. (Jonathan Lange, James Henstridge, Robert Collins)
495
* New API, ``bzrlib.bugtracker.tracker_registry``, for adding support for
496
other bug trackers to ``fixes``. (Jonathan Lange, James Henstridge,
499
* ``selftest`` has new short options ``-f`` and ``-1``. (Martin
502
* ``bzrlib.tsort.MergeSorter`` optimizations. Change the inner loop
503
into using local variables instead of going through ``self._var``.
504
Improves the time to ``merge_sort`` a 10k revision graph by
505
approximately 40% (~700->400ms). (John Arbash Meinel)
507
* ``make docs`` now creates a man page at ``man1/bzr.1`` fixing bug 107388.
510
* ``bzr help`` now provides cross references to other help topics using
511
the _see_also facility on command classes. Likewise the bzr_man
512
documentation, and the bzr.1 man page also include this information.
515
* Tags are now included in logs, that use the long log formatter.
516
(Erik Bågfors, Alexander Belchenko)
518
* ``bzr help`` provides a clearer message when a help topic cannot be
519
found. (Robert Collins, #107656)
521
* ``bzr help`` now accepts optional prefixes for command help. The help
522
for all commands can now be found at ``bzr help commands/COMMANDNAME``
523
as well as ``bzr help COMMANDNAME`` (which only works for commands
524
where the name is not the same as a more general help topic).
527
* ``bzr help PLUGINNAME`` will now return the module docstring from the
528
plugin PLUGINNAME. (Robert Collins, #50408)
530
* New help topic ``urlspec`` which lists the availables transports.
531
(Goffredo Baroncelli)
533
* doc/server.txt updated to document the default bzr:// port
534
and also update the blurb about the hpss' current status.
535
(Robert Collins, #107125).
537
* ``bzr serve`` now listens on interface 0.0.0.0 by default, making it
538
serve out to the local LAN (and anyone in the world that can reach the
539
machine running ``bzr serve``. (Robert Collins, #98918)
541
* A new smart server protocol version has been added. It prefixes requests
542
and responses with an explicit version identifier so that future protocol
543
revisions can be dealt with gracefully. (Andrew Bennetts, Robert Collins)
545
* The bzr protocol version 2 indicates success or failure in every response
546
without depending on particular commands encoding that consistently,
547
allowing future client refactorings to be much more robust about error
548
handling. (Robert Collins, Martin Pool, Andrew Bennetts)
550
* The smart protocol over HTTP client has been changed to always post to the
551
same ``.bzr/smart`` URL under the original location when it can. This allows
552
HTTP servers to only have to pass URLs ending in .bzr/smart to the smart
553
server handler, and not arbitrary ``.bzr/*/smart`` URLs. (Andrew Bennetts)
555
* digest authentication is now supported for proxies and HTTP by the urllib
556
based http implementation. Tested against Apache 2.0.55 and Squid
557
2.6.5. Basic and digest authentication are handled coherently for HTTP
558
and proxy: if the user is provided in the url (bzr command line for HTTP,
559
proxy environment variables for proxies), the password is prompted for
560
(only once). If the password is provided, it is taken into account. Once
561
the first authentication is successful, all further authentication
562
roundtrips are avoided by preventively setting the right authentication
568
10
* bzrlib API compatability with 0.8 has been dropped, cleaning up some