5
5
.. contents:: List of Releases
8
bzr 2.1.0rc1 (not released yet)
9
###############################
11
:Codename: the 'new' stable
12
:2.1.0rc1: 2009-01-06 (expected)
20
* Add bug information to log output when available.
21
(Neil Martinsen-Burrell, Guillermo Gonzalez, #251729)
23
* ``bzr branch`` now takes a ``--bind`` option. This lets you
24
branch and bind all in one command. (Ian Clatworthy)
26
* ``bzr unshelve --preview`` can now be used to show how a patch on the
27
shelf would be applied to the working tree.
28
(Guilherme Salgado, #308122)
30
* ``bzr update`` now takes a ``--revision`` argument. This lets you
31
change the revision of the working tree to any revision in the
32
ancestry of the current or master branch. (Matthieu Moy, Mark Hammond,
35
* ``-Dbytes`` can now be used to display the total number of bytes
36
transferred for the current command. This information is always logged
37
to ``.bzr.log`` for later inspection. (John Arbash Meinel)
39
* The ``suppress_warnings`` configuration option has been introduced and
40
accept the ``format_deprecation`` value to disable the corresponding
41
warning for repositories. It can be set to in either ``bazaar.conf``,
42
``locations.conf`` or ``branch.conf``.
43
(Ted Gould, Matthew Fuller, Vincent Ladeuil)
48
* Always show a message if an OS error occurs while trying to run a
49
user-specified commit message editor.
50
(Martin Pool, #504842)
52
* ``bzr export dir`` now requests all file content as a record stream,
53
rather than requsting the file content one file-at-a-time. This can make
54
exporting over the network significantly faster (54min => 9min in one
55
case). (John Arbash Meinel, #343218)
57
* ``bzr serve`` no longer slowly leaks memory. The compiled
58
``bzrlib.bencode.Encoder()`` class was using ``__del__`` to cleanup and
59
free resources, and it should have been using ``__dealloc__``.
60
This will likely have an impact on any other process that is serving for
61
an extended period of time. (John Arbash Meinel, #494406)
63
* ``bzr switch -b`` can now create branches that are located using directory
64
services such as ``lp:``, even when the branch name doesn't contain a
65
'/'. (Neil Martinsen-Burrell, #495263)
67
* ``bzr unshelve`` has improved messages about what it is doing.
68
(Neil Martinsen-Burrell, #496917)
70
* Check for SIGINT (Ctrl-C) and other signals immediately if ``readdir``
71
returns ``EINTR`` by calling ``PyErr_CheckSignals``. This affected the
72
optional ``_readdir_pyx`` extension. (Andrew Bennetts, #495023)
74
* Fixed a side effect mutation of ``RemoteBzrDirFormat._network_name``
75
that caused some tests to fail when run in a non-default order.
76
Probably no user impact. (Martin Pool, #504102)
78
* Fixed ``ObjectNotLocked`` error in ``bzr cat -rbranch:../foo FILE``.
79
(Andrew Bennetts, #506274)
81
* FTP transports support Unicode paths by encoding/decoding them as utf8.
82
(Vincent Ladeuil, #472161)
84
* Give a clearer message if the lockdir disappears after being apparently
85
successfully taken. (Martin Pool, #498378)
87
* Listen to the SIGWINCH signal to update the terminal width.
88
(Vincent Ladeuil, #316357)
90
* The 2a format wasn't properly restarting autopacks when something
91
changed underneath it (like another autopack). Now concurrent
92
autopackers will properly succeed. (John Arbash Meinel, #495000)
94
* When operations update the working tree, all affected files should end
95
up with the same mtime. (eg. when versioning a generated file, if you
96
update the source and the generated file together, the generated file
97
should appear up-to-date.)
98
(John Arbash Meinel, Martin <gzlist>, #488724)
103
* Added ``add_cleanup`` and ``cleanup_now`` to ``bzrlib.command.Command``.
104
All the builtin commands now use ``add_cleanup`` rather than
105
``try``/``finally`` blocks where applicable as it is simpler and more
106
robust. (Andrew Bennetts)
108
* Push will now inform the user when they are trying to push to a foreign
109
VCS for which roundtripping is not supported, and will suggest them to
110
use dpush. (Jelmer Vernooij)
112
* The version of bzr being run is now written to the log file.
115
* Transport network activity indicator is shown more of the time when
116
Bazaar is doing network IO.
122
* Improved help for ``bzr send``.
123
(Martin Pool, Bojan Nikolic)
125
* There is a System Administrator's Guide in ``doc/en/admin-guide``,
126
including discussions of installation, relevant plugins, security and
127
backup. (Neil Martinsen-Burrell)
129
* The ``conflicts`` help topic has been renamed to ``conflict-types``.
132
* The User Reference is now presented as a series of topics.
133
Many of the included topics have link and format tweaks applied.
139
* Many test features were renamed from ``FooFeature`` to ``foo_feature``
140
to be consistent with instances being lower case and classes being
141
CamelCase. For the features that were more likely to be used, we added a
142
deprecation thunk, but not all. (John Arbash Meinel)
144
* The Branch hooks pre_change_branch_tip no longer masks exceptions raised
145
by plugins - the original exceptions are now preserved. (Robert Collins)
147
* The Transport ``Server.tearDown`` method is now renamed to
148
``stop_server`` and ``setUp`` to ``start_server`` for consistency with
149
our normal naming pattern, and to avoid confusion with Python's
150
``TestCase.tearDown``. (Martin Pool)
152
* ``WorkingTree.update`` implementations must now accept a ``revision``
158
* New helper osutils.UnicodeOrBytesToBytesWriter which encodes unicode
159
objects but passes str objects straight through. This is used for
160
selftest but may be useful for diff and other operations that generate
161
mixed output. (Robert Collins)
163
* New exception ``NoRoundtrippingSupport``, for use by foreign branch
164
plugins. (Jelmer Vernooij)
169
* ``bzrlib.tests.permute_for_extension`` is a helper that simplifies
170
running all tests in the current module, once against a pure python
171
implementation, and once against an extension (pyrex/C) implementation.
172
It can be used to dramatically simplify the implementation of
173
``load_tests``. (John Arbash Meinel)
175
* ``bzrlib.tests.TestCase`` now subclasses ``testtools.testcase.TestCase``.
176
This permits features in testtools such as getUniqueInteger and
177
getUniqueString to be used. Because of this, testtools version 0.9.2 or
178
newer is now a dependency to run bzr selftest. Running with versions of
179
testtools less than 0.9.2 will cause bzr to error while loading the test
180
suite. (Robert Collins)
182
* Shell-like tests now support the command "mv" for moving files. The
183
syntax for ``mv file1 file2``, ``mv dir1 dir2`` and ``mv file dir`` is
184
supported. (Neil Martinsen-Burrell)
186
* The test progress bar no longer distinguishes tests that 'errored' from
187
tests that 'failed' - they're all just failures.
8
190
bzr 2.0.4 (not released yet)
9
191
############################
41
223
* Give a clearer message if the lockdir disappears after being apparently
42
224
successfully taken. (Martin Pool, #498378)
226
* Give a warning when fetching between local repositories with
227
sufficiently different formats that the content will need to be
228
serialized (ie ``InterDifferingSerializer``) so the user has a clue that
229
upgrading could make it faster.
230
(Martin Pool, #456077)
44
232
* If we fail to open ``~/.bzr.log`` write a clear message to stderr rather
45
233
than using ``warning()``. The log file is opened before logging is set
46
234
up, and it leads to very confusing: 'no handlers for "bzr"' messages for
47
235
users, rather than something nicer.
48
236
(John Arbash Meinel, Barry Warsaw, #503886)
238
* Refuse to build with any Pyrex 0.9.4 release, as they have known bugs.
239
(Martin Pool, John Arbash Meinel, #449372)
241
* ``setup.py bdist_rpm`` now properly finds extra files needed for the
242
build. (there is still the distutils bug
243
http://bugs.python.org/issue644744) (Joe Julian, #175839)
50
245
* The 2a format wasn't properly restarting autopacks when something
51
246
changed underneath it (like another autopack). Now concurrent
52
247
autopackers will properly succeed. (John Arbash Meinel, #495000)
249
* ``TreeTransform`` can now handle when a delta says that the file id for
250
the tree root changes. Rather than trying to rename your working
251
directory, or failing early saying that you can't have multiple
252
tree roots. This also fixes revert, update, and pull when the root id
253
changes. (John Arbash Meinel, #494269, #504390)
54
255
* ``_update_current_block`` no longer suppresses exceptions, so ^C at just
55
256
the right time will get propagated, rather than silently failing to move
56
257
the block pointer. (John Arbash Meinel, Gareth White, #495023)
76
277
bug #495023. (John Arbash Meinel)
283
:Codename: san francisco airport
286
The fourth beta release in the 2.1 series brings with it a significant
287
number of bugfixes (~20). The test suite is once again (finally) "green"
288
on Windows, and should remain that way for future releases. There are a
289
few performance related updates (faster upgrade and log), and several UI
290
tweaks. There has also been a significant number of tweaks to the runtime
291
documentation. 2.1.0b4 include everything from the 2.0.3 release.
297
* The BZR_SSH environmental variable may now be set to the path of a secure
298
shell client. If currently set to the value ``ssh`` it will now guess the
299
vendor of the program with that name, to restore the old behaviour that
300
indicated the SSH Corporation client use ``sshcorp`` instead as the magic
301
string. (Martin <gzlist@googlemail.com>, #176292)
306
* ``bzr commit`` now has a ``--commit-time`` option.
307
(Alexander Sack, #459276)
309
* ``-Dhpss`` now increases logging done when run on the bzr server,
310
similarly to how it works on the client. (John Arbash Meinel)
312
* New option ``bzr unshelve --keep`` applies the changes and leaves them
313
on the shelf. (Martin Pool, Oscar Fuentes, #492091)
315
* The ``BZR_COLUMNS`` envrionment variable can be set to force bzr to
316
respect a given terminal width. This can be useful when output is
317
redirected or in obscure cases where the default value is not
318
appropriate. Pagers can use it to get a better control of the line
322
* The new command ``bzr lp-mirror`` will request that Launchpad update its
323
mirror of a local branch. This command will only function if launchpadlib
331
* After renaming a file, the dirstate could accidentally reference
332
``source\\path`` rather than ``source/path`` on Windows. This might be a
333
source of some dirstate-related failures. (John Arbash Meinel)
335
* ``bzr commit`` now detects commit messages that looks like file names
336
and issues a warning.
337
(Gioele Barabucci, #73073)
339
* ``bzr ignore /`` no longer causes an IndexError. (Gorder Tyler, #456036)
341
* ``bzr log -n0 -rN`` should not return revisions beyond its merged revisions.
342
(#325618, #484109, Marius Kruger)
344
* ``bzr merge --weave`` and ``--lca`` will now create ``.BASE`` files for
345
files with conflicts (similar to ``--merge3``). The contents of the file
346
is a synthesis of all bases used for the merge.
347
(John Arbash Meinel, #40412)
349
* ``bzr mv --quiet`` really is quiet now. (Gordon Tyler, #271790)
351
* ``bzr serve`` is more clear about the risk of supplying --allow-writes.
352
(Robert Collins, #84659)
354
* ``bzr serve --quiet`` really is quiet now. (Gordon Tyler, #252834)
356
* Fix bug with redirected URLs over authenticated HTTP.
357
(Glen Mailer, Neil Martinsen-Burrell, Vincent Ladeuil, #395714)
359
* Interactive merge doesn't leave branch locks behind. (Aaron Bentley)
361
* Lots of bugfixes for the test suite on Windows. We should once again
362
have a test suite with no failures on Windows. (John Arbash Meinel)
364
* ``osutils.terminal_width()`` obeys the BZR_COLUMNS environment
365
variable but returns None if the terminal is not a tty (when output is
366
redirected for example). Also fixes its usage under OSes that doesn't
367
provide termios.TIOCGWINSZ. Make sure the corresponding tests runs on
369
(Joke de Buhr, Vincent Ladeuil, #353370, #62539)
370
(John Arbash Meinel, Vincent Ladeuil, #492561)
372
* Terminate ssh subprocesses when no references to them remain, fixing
373
subprocess and file descriptor leaks. (Andrew Bennetts, #426662)
375
* The ``--hardlink`` option of ``bzr branch`` and ``bzr checkout`` now
376
works for 2a format trees. Only files unaffected by content filters
377
will be hardlinked. (Andrew Bennetts, #408193)
379
* The new glob expansion on Windows would replace all ``\`` characters
380
with ``/`` even if it there wasn't a glob to expand, the arg was quoted,
381
etc. Now only change slashes if there is something being glob expanded.
382
(John Arbash Meinel, #485771)
384
* Use our faster ``KnownGraph.heads()`` functionality when computing the
385
new rich-root heads. This can cut a conversion time in half (mysql from
386
13.5h => 6.2h) (John Arbash Meinel, #487632)
388
* When launching a external diff tool via bzr diff --using, temporary files
389
are no longer created, rather, the path to the file in the working tree is
390
passed to the external diff tool. This allows the file to be edited if the
391
diff tool provides for this. (Gary van der Merwe, #490738)
393
* The launchpad-open command can now be used from a subdirectory of a
394
branch, not just from the root of the branch.
395
(Neil Martinsen-Burrell, #489102)
401
* ``bzr log`` is now faster. (Ian Clatworthy)
403
* ``bzr update`` provides feedback on which branch it is up to date with.
404
(Neil Martinsen-Burrell)
406
* ``bzr upgrade`` from pre-2a to 2a can be significantly faster (4x).
407
For details see the xml8 patch and heads() improvements.
410
* ``bzrlib.urlutils.local_path_from_url`` now accepts
411
'file://localhost/' as well as 'file:///' URLs on POSIX. (Michael
414
* The progress bar now shows only a spinner and per-operation counts,
415
not an overall progress bar. The previous bar was often not correlated
416
with real overall operation progress, either because the operations take
417
nonlinear time, or because at the start of the operation Bazaar couldn't
418
estimate how much work there was to do. (Martin Pool)
423
* Lots of documentation tweaks for inline help topics and command help
429
* ``bzrlib.textui`` (vestigial module) removed. (Martin Pool)
431
* The Launchpad plugin now has a function ``login`` which will log in to
432
Launchpad with launchpadlib, and ``load_branch`` which will return the
433
Launchpad Branch object corresponding to a given Bazaar Branch object.
439
* New test Feature: ``ModuleAvailableFeature``. It is designed to make it
440
easier to handle what tests you want to run based on what modules can be
441
imported. (Rather than lots of custom-implemented features that were
442
basically copy-and-pasted.) (John Arbash Meinel)
444
* ``osutils.timer_func()`` can be used to get either ``time.time()`` or
445
``time.clock()`` when you want to do performance timing.
446
``time.time()`` is limited to 15ms resolution on Windows, but
447
``time.clock()`` gives CPU and not wall-clock time on other platforms.
450
* Several code paths that were calling ``Transport.get().read()`` have
451
been changed to the equalivent ``Transport.get_bytes()``. The main
452
difference is that the latter will explicitly call ``file.close()``,
453
rather than expecting the garbage collector to handle it. This helps
454
with some race conditions on Windows during the test suite and sftp
455
tests. (John Arbash Meinel)
460
* TestCaseWithMemoryTransport no longer sets $HOME and $BZR_HOME to
461
unicode strings. (Michael Hudson, #464174)
105
490
* Improve "Binary files differ" hunk handling. (Aaron Bentley, #436325)
496
:Codename: after sprint recovery
499
This release was pushed up from its normal release cycle due to a
500
regression in python 2.4 compatibility in 2.1.0b2. Since this regression
501
was caught before 2.1.0b2 was officially announced, the full changelog
502
includes both 2.1.0b3 and 2.1.0b2 changes.
504
Highlights of 2.1.0b3 are: new globbing code for all commands on Windows,
505
the test suite now conforms to python's trunk enhanced semantics (skip,
506
etc.), and ``bzr info -v`` will now report the correct branch and repo
507
formats for Remote objects.
513
* Users can define a shelve editor to provide shelf functionality at a
514
granularity finer than per-patch-hunk. (Aaron Bentley)
519
* Fix for shell completion and short options. (Benoît PIERRE)
521
* Hooks daughter classes should always call the base constructor.
522
(Alexander Belchenko, Vincent Ladeuil, #389648)
524
* Improve "Binary files differ" hunk handling. (Aaron Bentley, #436325)
526
* On Windows, do glob expansion at the command-line level (as is usually
527
done in bash, etc.) This means that *all* commands get glob expansion
528
(bzr status, bzr add, bzr mv, etc). It uses a custom command line
529
parser, which allows us to know if a given section was quoted. It means
530
you can now do ``bzr ignore "*.py"``.
531
(John Arbash Meinel, #425510, #426410, #194450)
533
* Sanitize commit messages that come in from the '-m' flag. We translate
534
'\r\n' => '\n' and a plain '\r' => '\n'. The storage layer doesn't
535
allow those because XML store silently translate it anyway. (The parser
536
auto-translates \r\n => \n in ways that are hard for us to catch.)
538
* Show correct branch and repository format descriptions in
539
``bzr info -v`` on a smart server location. (Andrew Bennetts, #196080)
541
* The fix for bug #186920 accidentally broke compatibility with python
542
2.4. (Vincent Ladeuil, #475585)
544
* Using ``Repository.get_commit_builder().record_iter_changes()`` now
545
correctly sets ``self.inv_sha1`` to a sha1 string and
546
``self.new_inventory`` to an Inventory instance after calling
547
``self.finish_inventory()``. (Previously it accidently set both values
548
as a tuple on ``self.inv_sha1``. This was missed because
549
``repo.add_revision`` ignores the supplied inventory sha1 and recomputes
550
the sha1 from the repo directly. (John Arbash Meinel)
552
* Shelve command refuse to run if there is no real terminal.
553
(Alexander Belchenko)
555
* Avoid unnecessarily flushing of trace file; it's now unbuffered at the
556
Python level. (Martin Pool)
561
* Include Japanese translations for documentation (Inada Naoki)
563
* New API ``ui_factory.make_output_stream`` to be used for sending bulk
564
(rather than user-interaction) data to stdout. This automatically
565
coordinates with progress bars or other terminal activity, and can be
567
(Martin Pool, 493944)
572
* Some of the core groupcompress functionality now releases the GIL before
573
operation. Similar to how zlib and bz2 operate without the GIL in the
574
core compression and decompression routines. (John Arbash Meinel)
579
* -Dhpssvfs will now trigger on ``RemoteBzrDir._ensure_real``, providing
580
more debugging of VFS access triggers. (Robert Collins)
582
* KnownFailure is now signalled to ``ExtendedTestResult`` using the same
583
method that Python 2.7 uses - ``addExpectedFailure``. (Robert Collins)
585
* ``--parallel=fork`` is now compatible with --subunit.
586
(Robert Collins, Vincent Ladeuil, #419776)
588
* TestNotApplicable is now handled within the TestCase.run method rather
589
than being looked for within ``ExtendedTestResult.addError``. This
590
provides better handling with other ``TestResult`` objects, degrading to
591
sucess rather than error. (Robert Collins)
593
* The private method ``_testConcluded`` on ``ExtendedTestResult`` has been
594
removed - it was empty and unused. (Robert Collins)
596
* UnavailableFeature is now handled within the TestCase.run method rather
597
than being looked for within addError. If the Result object does not
598
have an addNotSupported method, addSkip is attempted instead, and
599
failing that addSuccess. (Robert Collins)
601
* When a TestResult does not have an addSkip method, skipped tests are now
602
reported as successful tests, rather than as errors. This change is
603
to make it possible to get a clean test run with a less capable
604
TestResult. (Robert Collins)
611
:Codename: a load off my mind
614
This is our second feature-filled release since 2.0, pushing us down the
615
path to a 2.1.0. Once again, all bugfixes in 2.0.2 are present in 2.1.0b2.
617
Key highlights in this release are: improved handling of
618
failures-during-cleanup for commit, fixing a long-standing bug with
619
``bzr+http`` and shared repositories, all ``lp:`` urls to be resolved
620
behind proxies, and a new StaticTuple datatype, allowing us to reduce
621
memory consumption (50%) and garbage collector overhead (40% faster) for
624
* A new ``--concurrency`` option has been added as well as an associated
625
BZR_CONCURRENCY environment variable to specify the number of
626
processes that can be run concurrently when running ``bzr selftest``. The
627
command-line option overrides the environment variable if both are
628
specified. If none is specified. the number of processes is obtained
629
from the OS as before. (Matt Nordhoff, Vincent Ladeuil)
634
* ``bzr+http`` servers no longer give spurious jail break errors when
635
serving branches inside a shared repository. (Andrew Bennetts, #348308)
637
* Errors during commit are handled more robustly so that knock-on errors
638
are less likely to occur, and will not obscure the original error if
639
they do occur. This fixes some causes of ``TooManyConcurrentRequests``
640
and similar errors. (Andrew Bennetts, #429747, #243391)
642
* Launchpad urls can now be resolved from behind proxies.
643
(Gordon Tyler, Vincent Ladeuil, #186920)
645
* Reduce the strictness for StaticTuple, instead add a debug flag
646
``-Dstatic_tuple`` which will change apis to be strict and raise errors.
647
This way, most users won't see failures, but developers can improve
648
internals. (John Arbash Meinel, #471193)
650
* TreeTransform.adjust_path updates the limbo paths of descendants of adjusted
651
files. (Aaron Bentley)
653
* Unicode paths are now handled correctly and consistently by the smart
654
server. (Andrew Bennetts, Michael Hudson, #458762)
659
* When reading index files, we now use a ``StaticTuple`` rather than a
660
plain ``tuple`` object. This generally gives a 20% decrease in peak
661
memory, and can give a performance boost up to 40% on large projects.
664
* Peak memory under certain operations has been reduced significantly.
665
(eg, 'bzr branch launchpad standalone' is cut in half)
671
* Filtered views user documentation upgraded to refer to format 2a
672
instead of pre-2.0 formats. (Ian Clatworthy)
677
* Remove deprecated ``CLIUIFactory``. (Martin Pool)
679
* ``UIFactory`` now has new ``show_error``, ``show_message`` and
680
``show_warning`` methods, which can be hooked by non-text UIs.
686
* Added ``bzrlib._simple_set_pyx``. This is a hybrid between a Set and a
687
Dict (it only holds keys, but you can lookup the object located at a
688
given key). It has significantly reduced memory consumption versus the
689
builtin objects (1/2 the size of Set, 1/3rd the size of Dict). This is
690
used as the interning structure for StaticTuple objects.
693
* ``bzrlib._static_tuple_c.StaticTuple`` is now available and used by
694
the btree index parser and the chk map parser. This class functions
695
similarly to ``tuple`` objects. However, it can only point to a limited
696
collection of types. (Currently StaticTuple, str, unicode, None, bool,
697
int, long, float, but not subclasses). This allows us to remove it from
698
the garbage collector (it cannot be in a cycle), it also allows us to
699
intern the objects. In testing, this can reduce peak memory by 20-40%,
700
and significantly improve performance by removing objects from being
701
inspected by the garbage collector. (John Arbash Meinel)
703
* ``GroupCompressBlock._ensure_content()`` will now release the
704
``zlib.decompressobj()`` when the first request is for all of the
705
content. (Previously it would only be released if you made a request for
706
part of the content, and then all of it later.) This turns out to be a
707
significant memory savings, as a ``zstream`` carries around approx 260kB
708
of internal state and buffers. (For branching bzr.dev this drops peak
709
memory from 382MB => 345MB.) (John Arbash Meinel)
711
* When streaming content between ``2a`` format repositories, we now clear
712
caches from earlier versioned files. (So 'revisions' is cleared when we
713
start reading 'inventories', etc.) This can have a significant impact on
714
peak memory for initial copies (~200MB). (John Arbash Meinel)
152
761
instead of pre-2.0 formats. (Ian Clatworthy)
767
:Codename: While the cat is away
770
This is the first development release in the new split "stable" and
771
"development" series. As such, the release is a snapshot of bzr.dev
772
without creating a release candidate first. This release includes a
773
fair amount of internal changes, with deprecated code being removed,
774
and several new feature developments. People looking for a stable code
775
base with only bugfixes should focus on the 2.0.1 release. All bugfixes
776
present in 2.0.1 are present in 2.1.0b1.
778
Highlights include support for ``bzr+ssh://host/~/homedir`` style urls,
779
finer control over the plugin search path via extended BZR_PLUGIN_PATH
780
syntax, visible warnings when extension modules fail to load, and improved
781
error handling during unlocking.
787
* Bazaar can now send mail through Apple OS X Mail.app.
790
* ``bzr+ssh`` and ``bzr`` paths can now be relative to home directories
791
specified in the URL. Paths starting with a path segment of ``~`` are
792
relative to the home directory of the user running the server, and paths
793
starting with ``~user`` are relative to the home directory of the named
794
user. For example, for a user "bob" with a home directory of
795
``/home/bob``, these URLs are all equivalent:
797
* ``bzr+ssh://bob@host/~/repo``
798
* ``bzr+ssh://bob@host/~bob/repo``
799
* ``bzr+ssh://bob@host/home/bob/repo``
801
If ``bzr serve`` was invoked with a ``--directory`` argument, then no
802
home directories outside that directory will be accessible via this
805
This is a feature of ``bzr serve``, so pre-2.1 clients will
806
automatically benefit from this feature when ``bzr`` on the server is
807
upgraded. (Andrew Bennetts, #109143)
809
* Extensions can now be compiled if either Cython or Pyrex is available.
810
Currently Pyrex is preferred, but that may change in the future.
813
* Give more control on BZR_PLUGIN_PATH by providing a way to refer to or
814
disable the user, site and core plugin directories.
815
(Vincent Ladeuil, #412930, #316192, #145612)
820
* Bazaar's native protocol code now correctly handles EINTR, which most
821
noticeably occurs if you break in to the debugger while connected to a
822
bzr+ssh server. You can now can continue from the debugger (by typing
823
'c') and the process continues. However, note that pressing C-\ in the
824
shell may still kill the SSH process, which is bug 162509, so you must
825
sent a signal to the bzr process specifically, for example by typing
826
``kill -QUIT PID`` in another shell. (Martin Pool, #341535)
828
* ``bzr add`` in a tree that has files with ``\r`` or ``\n`` in the
829
filename will issue a warning and skip over those files.
830
(Robert Collins, #3918)
832
* ``bzr dpush`` now aborts if uncommitted changes (including pending merges)
833
are present in the working tree. The configuration option ``dpush_strict``
834
can be used to set the default for this behavior.
835
(Vincent Ladeuil, #438158)
837
* ``bzr merge`` and ``bzr remove-tree`` now requires --force if pending
838
merges are present in the working tree.
839
(Vincent Ladeuil, #426344)
841
* Clearer message when Bazaar runs out of memory, instead of a ``MemoryError``
842
traceback. (Martin Pool, #109115)
844
* Don't give a warning on Windows when failing to import ``_readdir_pyx``
845
as it is never built. (John Arbash Meinel, #430645)
847
* Don't restrict the command name used to run the test suite.
848
(Vincent Ladeuil, #419950)
850
* ftp transports were built differently when the kerberos python module was
851
present leading to obscure failures related to ASCII/BINARY modes.
852
(Vincent Ladeuil, #443041)
854
* Network streams now decode adjacent records of the same type into a
855
single stream, reducing layering churn. (Robert Collins)
857
* PreviewTree behaves correctly when get_file_mtime is invoked on an unmodified
858
file. (Aaron Bentley, #251532)
860
* Registry objects should not use iteritems() when asked to use items().
861
(Vincent Ladeuil, #430510)
863
* Weave based repositories couldn't be cloned when committers were using
864
domains or user ids embedding '.sig'. Now they can.
865
(Matthew Fuller, Vincent Ladeuil, #430868)
870
* Revision specifiers can now be given in a more DWIM form, without
871
needing explicit prefixes for specifiers like tags or revision id's.
872
See ``bzr help revisionspec`` for full details. (Matthew Fuller)
874
* Bazaar gives a warning before exiting, and writes into ``.bzr.log``, if
875
compiled extensions can't be loaded. This typically indicates a
876
packaging or installation problem. In this case Bazaar will keep
877
running using pure-Python versions, but this may be substantially
878
slower. The warning can be disabled by setting
879
``ignore_missing_extensions = True`` in ``bazaar.conf``.
880
See also <https://answers.launchpad.net/bzr/+faq/703>.
881
(Martin Pool, #406113, #430529)
883
* Secondary errors that occur during Branch.unlock and Repository.unlock
884
no longer obscure the original error. These methods now use a new
885
decorator, ``only_raises``. This fixes many causes of
886
``TooManyConcurrentRequests`` and similar errors.
887
(Andrew Bennetts, #429747)
892
* Describe the new shell-like test feature. (Vincent Ladeuil)
894
* Help on hooks no longer says 'Not deprecated' for hooks that are
895
currently supported. (Ian Clatworthy, #422415)
900
* ``bzrlib.user_encoding`` has been removed; use
901
``bzrlib.osutils.get_user_encoding`` instead. (Martin Pool)
903
* ``bzrlib.tests`` now uses ``stopTestRun`` for its ``TestResult``
904
subclasses - the same as python's unittest module. (Robert Collins)
906
* ``diff._get_trees_to_diff`` has been renamed to
907
``diff.get_trees_and_branches_to_diff``. It is now a public API, and it
908
returns the old and new branches. (Gary van der Merwe)
910
* ``bzrlib.trace.log_error``, ``error`` and ``info`` have been deprecated.
913
* ``MutableTree.has_changes()`` does not require a tree parameter anymore. It
914
now defaults to comparing to the basis tree. It now checks for pending
915
merges too. ``Merger.check_basis`` has been deprecated and replaced by the
916
corresponding has_changes() calls. ``Merge.compare_basis``,
917
``Merger.file_revisions`` and ``Merger.ensure_revision_trees`` have also
919
(Vincent Ladeuil, #440631)
921
* ``ProgressTask.note`` is deprecated.
927
* Added ``-Drelock`` debug flag. It will ``note`` a message every time a
928
repository or branch object is unlocked then relocked the same way.
931
* ``BTreeLeafParser.extract_key`` has been tweaked slightly to reduce
932
mallocs while parsing the index (approx 3=>1 mallocs per key read).
933
This results in a 10% speedup while reading an index.
936
* The ``bzrlib.lsprof`` module has a new class ``BzrProfiler`` which makes
937
profiling in some situations like callbacks and generators easier.
943
* Passing ``--lsprof-tests -v`` to bzr selftest will cause lsprof output to
944
be output for every test. Note that this is very verbose! (Robert Collins)
946
* Setting ``BZR_TEST_PDB=1`` when running selftest will cause a pdb
947
post_mortem to be triggered when a test failure occurs. (Robert Collins)
949
* Shell-like tests can now be written. Code in ``bzrlib/tests/script.py`` ,
950
documentation in ``developers/testing.txt`` for details.
953
* Some tests could end up with the same id, that was dormant for
955
(Vincent Ladeuil, #442980)
957
* Stop showing the number of tests due to missing features in the test
958
progress bar. (Martin Pool)
960
* Test parameterisation now does a shallow copy, not a deep copy of the test
961
to be parameterised. This is not expected to break external use of test
962
parameterisation, and is substantially faster. (Robert Collins)
964
* Tests that try to open a bzr dir on an arbitrary transport will now
965
fail unless they have explicitly permitted the transport via
966
``self.permit_url``. The standard test factories such as ``self.get_url``
967
will permit the urls they provide automatically, so only exceptional
968
tests should need to do this. (Robert Collins)
970
* The break-in test no longer cares about clean shutdown of the child,
971
instead it is happy if the debugger starts up. (Robert Collins)
973
* The full test suite is expected to pass when the C extensions are not
974
present. (Vincent Ladeuil, #430749)