1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
|
####################
Bazaar Release Notes
####################
.. toctree::
:maxdepth: 1
bzr 2.3b4
#########
:2.3.b4: NOT RELEASED YET
External Compatibility Breaks
*****************************
.. These may require users to change the way they use Bazaar.
New Features
************
.. New commands, options, etc that users may wish to try out.
Improvements
************
.. Improvements to existing commands, especially improved performance
or memory usage, or better results.
* Bazaar now caches a branch's tags while that branch is read-locked.
This removes 1 network roundtrip from most interactions with a remote
branch. (Andrew Bennetts)
* ``bzr config <option>`` will now display only the value itself so scripts
can use it to query the currently active configuration. Displaying several
options matching a given regular expression is now controlled via the
``--all`` option. (Vincent Ladeuil, bug #670251)
* ``bzr resolve`` now reports the number of conflicts resolved and the
number of remaining conflicts. This provides a better feedback about the
whole resolution process. (Vincent Ladeuil)
Bug Fixes
*********
.. Fixes for situations where bzr would previously crash or give incorrect
or undesirable results.
* Better message if there is an error while setting ownership of
``.bazaar`` directory. (Parth Malwankar, #657553)
* ``bzr config`` properly displays list values. (Vincent Ladeuil, #672382)
* ``bzr config`` will now respect option policies when displaying the value
and display the definition sections when appropriate.
(Vincent Ladeuil, #671050)
* Don't create commit message files in the current directory to avoid nasty
interactions with emacs (which tries to establish the status of the file
during the commit which breaks on windows). (Vincent Ladeuil, #673637)
* ``bzr resolve --take-other <file>`` will not crash anymore if ``<file>``
is involved in a text conflict (but the conflict is still not
resolved). (Vincent Ladeuil, #646961)
* Merge will now correctly locate a lca where there is a criss-cross merge
of a new root. (Gary van der Merwe, #588698)
* Report error if non-ASCII command option given. (Rory Yorke, #140563)
Documentation
*************
.. Improved or updated documentation.
API Changes
***********
.. Changes that may require updates in plugins or other code that uses
bzrlib.
Internals
*********
.. Major internal changes, unlikely to be visible to users or plugin
developers, but interesting for bzr developers.
* ``BranchBuilder.build_snapshot`` now accepts parent_ids == [].
This can be used to create a new root in the graph. (Gary van der Merwe)
* Old repository development formats
RepositoryFormatCHK1 and RepositoryFormatCHK2 have been removed, and so
have the corresponding metadir format options ``development-rich-root``,
``development6-rich-root``, and ``development7-rich-root``.
Testing
*******
.. Fixes and changes that are only relevant to bzr's test framework and
suite. This can include new facilities for writing tests, fixes to
spurious test failures and changes to the way things should be tested.
* Add a null_output_matches_anything keyword argument with default False to
bzrlib.tests.script.ScriptRunner.run_script to specify that the command
output should not be checked (as opposed to expecting an empty output).
(Neil Martinsen-Burrell, #662509)
* Blank output section in scriptrunner tests no longer match any output.
Instead, use '...' as a wildcard if you don't care about the output.
(Martin Pool, #637830)
* Bump minimum testtools version required to run ``bzr selftest`` from 0.9.2
to 0.9.5 which will allow tests that need the fixed unicode handling to be
written. (Martin [gz])
* Printing selftest results to a non-UTF-8 console will now escape characters
that can't be encoded rather than aborting the test run with an exception.
(Martin [gz], #633216)
bzr 2.3b3
#########
:2.3b3: 2010-11-05
External Compatibility Breaks
*****************************
(none)
New Features
************
* Add --no-tree option to 'bzr push' and 'bzr init' for creating a
new or mirrored branch without working trees.
(Matthew Gordon, #506730)
* ``bzr config`` is a new command that displays the configuration options for
a given directory. It accepts a glob to match against multiple options at
once. It can also be used to set or delete a configuration option in any
configuration file. (Vincent Ladeuil)
* New shortcut url schemes ``ubuntu:`` and ``debianlp:`` access source
branches on Launchpad. E.g. ``bzr branch ubuntu:foo`` gives you the source
branch for project ``foo`` in the current distroseries for Ubuntu while
``bzr branch debianlp:lenny/foo`` gives you the source branch (on Launchpad)
for project ``foo`` in Debian Lenny.
(Barry Warsaw, #609186)
* Provide a configuration option "default_format" that controls the
default format for new branches created with ``bzr init``.
(Neil Martinsen-Burrell, #484101)
Bug Fixes
*********
* Always set PATH in start_bzr.bat on Windows. (Matthäus G. Chajdas, #470264)
* ``bzr status -r X..Y`` was failing because RevisionTree didn't implement
``get_shelf_manager``. (John Arbash Meinel, #662053)
* Correctly add directory contents when the name was previously added as a
normal file, rather than throwing ``AttributeError: children`` during
smart_add. (Martin [gz], #251864)
* Correctly handle the ``--directory`` option for all code paths of
``resolve`` and ``shelve``, this was previously ignored when paths were
provided as parameters. When both are provided, ``--directory`` becomes
the base directory for the other paths. (Vincent Ladeuil, #670851)
* Correctly set the Content-Type header when http POSTing to comply
with stricter web frameworks. (Vincent Ladeuil, #665100)
* Don't force openssh to use protocol=2, since that is now the default.
(Neil Martinsen-Burrell, #561061)
* Fix ``KeyError: 'port'`` when getting the stored password for an http
URL.
(Martin Pool, #654684)
* Make ``bzr tag --quiet`` really quiet. (Neil Martinsen-Burrell, #239523)
* Missing files (files bzr add'ed and then OS deleted) are now shown in ``bzr
status`` output. (Rory Yorke, #134168)
* ``NotBranchError`` no longer allows errors from calling
``bzrdir.open_repository()`` to propagate. This is unhelpful at best,
and at worst can trigger infinite loops in callers. (Andrew Bennetts)
* The ``branch.tags.merge_to(target_branch)`` API used by plugins such as
``bzr-builddeb`` now propagates changes to the master branch of the
target branch (if there is one). This makes it consistent with the
other tag APIs. (Andrew Bennetts, #603395)
* Windows installers no longer requires the Microsoft vcredist to be
installed. (Martin [gz], Gary van der Merwe, #632465)
Documentation
*************
* Add documentation of the ability to edit hunks when shelving.
(Neil Martinsen-Burrell, #517660)
* Be more specific about the meaning of revision ranges for ``bzr diff``.
(Neil Martinsen-Burrell, #247282)
* Document the comment character in the .bzrignore file, including a
workaround for ignore patterns that begin with #.
(Neil Martinsen-Burrell, #631515)
API Changes
***********
* Add ``bzrlib.pyutils`` module with helper functions for some Python
tasks such as resolving a dotted name to a Python object
(``get_named_object``). (Andrew Bennetts)
* ``bzrlib.tests.ForwardingResult`` no longer exists. Use
``testtools.ExtendedToOriginalDecorator`` instead. (Andrew Bennetts)
* ``known_hooks_key_to_parent_and_attribute`` in ``bzrlib.hooks`` has been
deprecated in favour of ``known_hooks.key_to_parent_and_attribute`` in
the same module. (Andrew Bennetts)
Internals
*********
* ``tools/fixed-in.py`` find a bug in NEWS from its number or a regexp
matching the news entry and display the corresponding release, date, fix
authors and the news entry itself. (Vincent Ladeuil)
Testing
*******
* Blank output section in scriptrunner tests no longer match any output.
Instead, use '...' as a wildcard if you don't care about the output.
(Martin Pool, #637830)
* ``bzr test-script script`` is a new command that runs a shell-like script
from an the ``script`` file. (Vincent Ladeuil)
* Fix spurious test failures on babune related to the http pipe cleanup and
get rid of some 'bytes left on the HTTP socket' useless log messages.
(Vincent Ladeuil, #655557)
* ``bzrlib.tests.per_workingtree.TestCaseWithWorkingTree.make_branch_builder``
respects its ``relpath`` parameter. (Vincent Ladeuil)
bzr 2.3b2
#########
:2.3b2: 2010-10-08
External Compatibility Breaks
*****************************
* The ``bzr tags`` command sorts tag names using a natural sort by
default (so tag2 sorts before tag10). The previous default was
strictly "asciibetical". That behavior is still available as ``bzr tags
--sort=alpha``. (Neil Martinsen-Burrell, #640760)
* ``BzrDir.generate_backup_name`` has been deprecated and replaced by a
private method. ``osutils.available_backup_name`` provides an extensible
replacement. This allowed the deprecation of
``bzrlib.transform.get_backup_name``,
``bzrlib.transform._get_backup_name`` and
``bzrlib.transform.TreeTransformBase.has_named_child``.
(Vincent Ladeuil)
New Features
************
* Add ``mainline`` revision specifier, which selects the revision that
merged a specified revision into the mainline. (Aaron Bentley)
* Add ``annotate`` revision specifier, which selects the revision that
introduced a specified line of a file. (Aaron Bentley)
* Add ``-Dmem_dump`` debug flag, which uses meliae to dump memory to
a file upon an out of memory error.
(Karl Bielefeldt, #551391)
* ``bzr status`` now displays a summary of existing shelves after
the other status information. This is done using a ``post_status``
hook.
(Parth Malwankar, #403687)
* GNU lsh is now a supported lsh client; just set BZR_SSH to 'lsh'.
Also, bzr will recognize if the 'ssh' comand is a symlink to lsh.
(Matthew Gordon, #374700)
* The ``pull`` and ``update`` commands now take a ``--show-base``
option that, in the case of conflicts, shows the base revision text.
(Rory Yorke, #202374)
Improvements
************
* ``bzr break-lock --force`` breaks the lock without prompting. (Before
using this, make sure the process holding the lock really is dead.)
(Martin Pool, #397315)
* ``bzr remove`` now takes a ``--no-backup`` option for when you don't want it
to backup anything, just delete it. This option used to be called ``--force``
which is now deprecated.
(Marius Kruger, #400554)
* When using the pycurl client module, Bazaar shows some of the text from
http server error messages.
(Martin Pool, #656667)
Bug Fixes
*********
* Don't force openssh to use protocol=2, since that is now the default.
(Neil Martinsen-Burrell, #561061)
* Fix signature of RemoteBzrDir.create_workingtree to match that of its
superclass. (Neil Martinsen-Burrell, Martin Pool, #524627)
* Fix traceback with python-2.7's xmlrpclib
(Toshio Kuratomi, #612096)
* Print junk rather than throwing a UnicodeDecodeError from ``bzr version-info``
when using the rio format (with non-ascii information) on a non-utf-8
terminal. (Andrej A Antonov, #518609)
* Treat all IO, OS, and socket errors consistently when establishing
SSH/SFTP connections via a subprocess. (Andrew Bennetts)
* ``unshelve --preview`` now can show diff in a non-ascii encoding.
(Andrej A Antonov, #518916)
* Deleting a versioned directory can leave orphans: unversioned files that
were present don't have a parent anymore. The
``bzr.transform.orphan_policy`` configuration option controls the ``bzr``
behaviour: ``conflict`` (the default) leave the orphans in place and
create a conflict for the directory, ``move`` create orphans named
``<file>.~#~`` in a ``bzr-orphans`` directory at the root of the working
tree. (Vincent Ladeuil, #323111)
Improvements
************
Documentation
*************
* Correct the documentation for setting up the smart server with Apache.
(Neil Martinsen-Burrell, #311518)
* Fix rst typos in bzrlib/help_topics/en/conflict-types.txt.
(Vincent Ladeuil, #660943)
* Provide more detailed help on the Launchpad plugin at "bzr help
plugins/launchpad". (Neil Martinsen-Burrell, #589379)
* Suggest ``bzr revert`` for restoring locally deleted files in help text
for ``bzr update``. (John C Barstow, #191466)
API Changes
***********
* ``WorkingTree`` methods ``pull``, ``update``, and ``_update_tree``
now have an optional argument, ``show_base``, which is by default
False. This is flag is ultimately passed to ``merge.merge_inner``
in each case. (Rory Yorke, #202374)
Internals
*********
* Small change to GroupCompressBlock to work more in terms of 'chunks'
rather than 'content' for its compressed storage. (John Arbash Meinel)
* When running ``bzr selftest --subunit`` the subunit stream will no
longer include the "log" information for tests which are considered to
be 'successes' (success, xfail, skip, etc) (John Arbash Meinel)
Testing
*******
* Add a new simpler way to generate multiple test variations, by setting
the `scenarios` attribute of a test class to a list of scenarios
descriptions, then using `load_tests_apply_scenarios`. (See the testing
guide and `bzrlib.tests.scenarios`.) Simplify `test_http` using this.
(Martin Pool, #597791)
* Add ``tests/ssl_certs/ca.crt`` to the required test files list. Test
involving the pycurl https test server fail otherwise when running
selftest from an installed version. (Vincent Ladeuil, #651706)
* Fix tests that failed when run under ``LANG=C``.
(Andrew Bennetts, #632387)
* Skip tests that needs a bzr source tree when there isn't one. This is
needed to succesfully run the test suite for installed versions.
(Vincent Ladeuil, #644855).
* Skip the tests that requires respecting the chmod bits when running as root.
(Vincent Ladeuil, #646133)
* Suppress the "maximum recursion depth exceeded in __subclasscheck__"
warning on stderr emitted during ``test_dict_deepnested`` in
``bzrlib/tests/test__bencode.py``. (Andrew Bennetts)
* Use tests.TestCaseInTempDir for tests that requires disk resources.
(Vincent Ladeuil, #650001)
bzr 2.3b1
#########
:2.3b1: 2010-09-20
This is the first beta of the 2.3 series, leading up to a 2.3.0
release in January or February. Beta releases are suitable for everyday use
but may cause some incompatibilities with plugins. Some plugins may need
small updates to work with 2.3b1.
2.3b1 includes some performance improvements in both speed and memory
consumption, some preliminary support for generating a texinfo version of
the doc and better support for launchpad. Many changes were made to make
our test suite more robust as well as numerous documentation fixes. It
improves the common infrastructure for dealing with colocated named
branches and foreign branches. We plan to continue with these themes
through the 2.3 series.
It also includes bug fixes for 2.0.6, 2.1.3 and 2.2.1 and over 40 fixes of
its own.
External Compatibility Breaks
*****************************
(none)
New Features
************
* Added ``pre_status`` and ``post_status`` hooks. This allows plugins
to register custom handlers which will be invoked before/after the
standard status output is displayed. (Parth Malwankar)
* ``bzr break-lock --config [location]`` can now break config files
locks. (Vincent Ladeuil, #525571)
* ``bzrlib.config.LockableConfig`` is a base class for config files that
needs to be protected against multiple writers. All methods that
change a configuration variable value must be decorated with
@needs_write_lock (set_option() for example).
(Vincent Ladeuil, #525571)
* The ``lp:`` prefix will now use your known username (from
``bzr launchpad-login``) to expand ``~`` to your username. For example:
``bzr launchpad-login user && bzr push lp:~/project/branch`` will now
push to ``lp:~user/project/branch``. (John Arbash Meinel)
* New development format ``development8-subtree`` which is similar to the
``2a`` format and adds subtree support. (Jelmer Vernooij)
Improvements
************
* Allow using both ``--using`` and ``--diff-options``.
(Matthäus G. Chajdas, #234708)
* Allow using non-integer bug ID with generic bug trackers.
(Alexandre Garnier, #440472)
* ``bzr remove`` now just backs up changed files instead of exiting,
forcing you to choose to either keep or delete them. Bazaar will now delete
the files if they can easily be recovered using revert, otherwise they
will be backed up (adding an extention of the form .~#~).
(Marius Kruger, #400554)
* ``bzr revert`` and ``bzr status`` are up to 15% faster on large trees
with many changes by not repeatedly building a list of all file-ids.
(Andrew Bennetts)
* Decrease memory consumption when many chk index pages are loaded. (Such
as during ``bzr co`` or ``bzr ls -R`` of a large tree.) Often we need to
read many chk pages because the individual chk map nodes will be spread
randomly. Peak memory for 'bzr ls -R' on a large tree dropped from 396MB
down to 247MB, expect even more significant savings on 64-bit platforms.
(John Arbash Meinel)
* Decrease peak memory during ``bzr send``. The old code was caching all
text content and all inventory strings for all revisions before
computing the diffs. Now we only cache as long as there is a child that
will need them. Sending 2000 bzr revisions drops from 1.2GB peak to
256MB peak. (John Arbash Meinel, #614576)
* ``DirState`` internals use a little bit less memory. For bzr.dev it
drops the memory from 1MB down to about 800kB. And replaces a few
thousand tuples and sets with StaticTuple. (John Arbash Meinel)
* Inventory entries now consume less memory (on 32-bit Ubuntu file entries
have dropped from 68 bytes to 40, and directory entries from 120 bytes
to 48). (Andrew Bennetts)
* Reduce peak memory by one copy of compressed text when writing to pack
repositories.
(John Arbash Meinel, #566940)
* When building new working trees, default to reading from the repository
rather than the source tree unless explicitly requested. (via
``--files-from`` and ``--hardlink`` for ``bzr branch`` and
``bzr checkout``. Generally, 2a format repositories extract
content faster than seeking and reading content from another tree,
especially in cold-cache situations. (John Arbash Meinel, #607298)
* Add ``__pycache__`` to the default ``ignores`` file. Future releases of
Python will use this directory to store bytecodes.
(Andrea Corbellini, #626687)
Bug Fixes
*********
* Additional merges after an unrelated branch has been merged with its
history no longer crash when deleted files are involved.
(Vincent Ladeuil, John Arbash Meinel, #375898)
* ``bzr add SYMLINK/FILE`` now works properly when the symlink points to a
previously-unversioned directory within the tree: the directory is
marked versioned too.
(Martin Pool, #192859)
* ``bzr clean-tree`` issues a warning if it is unable to delete a file
due to ``errno.EACCES`` instead of exiting with an error on Windows.
(Parth Malwankar, #430785)
* ``bzr commit SYMLINK`` now works, rather than trying to commit the
target of the symlink.
(Martin Pool, John Arbash Meinel, #128562)
* ``bzr ignore PATTERNS`` exits with error if a bad pattern is supplied.
``InvalidPattern`` exception error message now shows faulting
regular expression.
(Parth Malwankar #300062)
* ``bzr upgrade`` now creates the ``backup.bzr`` directory with the same
permissions as ``.bzr`` directory on a POSIX OS.
(Parth Malwankar, #262450)
* CommitBuilder now uses the committer instead of _config.username to generate
the revision-id. (Aaron Bentley, #614404)
* Configuration files in ``${BZR_HOME}`` are now written in an atomic
way which should help avoid problems with concurrent writers.
(Vincent Ladeuil, #525571)
* CommitBuilder now uses the committer instead of _config.username to generate
the revision-id. (Aaron Bentley, #614404)
* Configuration files in ``${BZR_HOME}`` are now protected against
concurrent writers by using a lock. (Vincent Ladeuil, #525571)
* Cope with Microsoft FTP Server and VSFTPd that return reply '250
Directory created' when mkdir succeeds. (Martin Pool, #224373)
* `decode` parameter to get() method in FtpTransport and GioTransport classes
is deprecated. (Alexander Belchenko)
* Don't print internal object name when print an invalid revision spec
error. (Neil Martinsen-Burrell, #598701)
* Don't traceback when a lockdir's ``held/info`` file is corrupt (e.g.
contains only NUL bytes). Instead warn the user, and allow ``bzr
break-lock`` to remove it. (Andrew Bennetts, #619872)
* ``EPIPE`` can be raised during test server shutdown. This happened on
gentoo only so far. (Vincent Ladeuil, #627277)
* Errors occurring during http(s) test server starts should now be
handled cleanly. (Vincent Ladeuil, #392402)
* Fix ``AttributeError on parent.children`` when adding a file under a
directory that was a symlink in the previous commit.
(Martin Pool, #192859)
* Fix ``AttributeError: 'NoneType' object has no attribute 'close'`` in
``_close_ssh_proc`` when using ``bzr+ssh://``. This was causing
connections to pre-1.6 bzr+ssh servers to fail, and causing warnings on
stderr in some other circumstances. (Andrew Bennetts, #633745)
* Fix spurious paramiko warning on hardy by ensuring that ``selftest``
properly remove its warning filter. (Vincent Ladeuil, #625686)
* Fix ``AttributeError on parent.children`` when adding a file under a
directory that was a symlink in the previous commit.
(Martin Pool, #192859)
* Fix ``AttributeError: 'NoneType' object has no attribute 'close'`` in
``_close_ssh_proc`` when using ``bzr+ssh://``. This was causing
connections to pre-1.6 bzr+ssh servers to fail, and causing warnings on
stderr in some other circumstances. (Andrew Bennetts, #633745)
* Fix a problem in bzr's ``Makefile`` that meant syntax errors in some
parts of bzr's source code could cause ``make check-nodocs`` to
incorrectly return an exit code of 0.
(Vincent Ladeuil, #626667)
* ``HTTP/1.1`` test servers now set a ``Content-Length`` header to comply
with pedantic ``HTTP/1.1`` clients. (Vincent Ladeuil, #568421)
* Most of the leaked threads during selftest are now fixed, allowing the
full test suite to pass on gentoo.
(Vincent Ladeuil, #392127)
* Only call ``setlocale`` in the bzr startup script on posix systems. This
avoids an issue with the newer windows C runtimes used by Python 2.6 and
later which can mangle bytestrings printed to the console.
(Martin [gz], #631350)
* `PathNotChild` should not give a traceback.
(Martin Pool, #98735)
* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
which can result in "missing referenced chk root keys" errors when
fetching from repositories with affected revisions.
(Andrew Bennetts, #522637)
* Raise ValueError instead of a string exception.
(John Arbash Meinel, #586926)
* Repositories accessed via a smart server now reject being stacked on a
repository in an incompatible format, as is the case when accessing them
via other methods. This was causing fetches from those repositories via
a smart server (e.g. using ``bzr branch``) to receive invalid data.
(Andrew Bennetts, #562380)
* Selftest with versions of subunit that support ``stopTestRun`` will no longer
error. This error was caused by 2.0 not being updated when upstream
python merged the end of run patch, which chose ``stopTestRun`` rather than
``done``. (Robert Collins, #571437)
* Stop ``AttributeError: 'module' object has no attribute 'ElementTree'``
being thrown from ``xml_serializer`` on certain cElementTree setups.
(Martin [gz], #254278)
* strace test-helper tests cope with the new Ubuntu policy of not allowing
users to attach to their own processes by default.
(Martin Pool, #626679)
* Test classes like ``TestCase``, ``TestLoader``, and ``TestSuite`` should
be available from ``bzrlib.tests.*``. They used to be, but were
accidentally removed. (John Arbash Meinel, #627438)
* ``Transport.stat`` on a symlink, including a transport pointing directly
to a symlink, now returns information about the symlink.
(Martin Pool)
* Upgrading or fetching from a non-rich-root repository to a rich-root
repository (e.g. from pack-0.92 to 2a) no longer fails with
``'Inter1and2Helper' object has no attribute 'source_repo'``. This was
a regression from Bazaar 2.1. (Andrew Bennetts, #636930)
Documentation
*************
* Added a builder/writer sphinx extension that can generate texinfo files. The
generated files are syntactically correct but the info navigation nodes
needs more work. (Vincent Ladeuil, #219334)
* First tests defined for sphinx, including a new bzrlib.tests.features.sphinx
to make the tests conditional.
(Vincent Ladeuil)
* Fix a lot of references in the docs to the old http://bazaar-vcs.org to
the new http://bazaar.canonical.com or http://wiki.bazaar.canonical.com
(John Arbash Meinel, #617503)
API Changes
***********
* When passing a file to ``UTF8DirReader`` make sure to close the current
directory file handle after the chdir fails. Otherwise when passing many
filenames into a command line ``bzr status`` we would leak descriptors.
(John Arbash Meinel, #583486)
* `ControlDirFormat` and `ControlDir` have been split out of `BzrDirFormat`
and `BzrDir`, respectively. `ControlDirFormat`
and `ControlDir` should be used as the base classes for new non-.bzr
implementations.
`BzrDirFormat.register_control_format` has been renamed to
`ControlDirFormat.register_format`.
`BzrDirFormat.register_server_control_format` has been removed.
Probing for control directories is now done by separate objects derived
from `bzrlib.controldir.Prober` and registered using
`bzrlib.controldir.ControlDirFormat.register_prober` or
`bzrlib.controldir.ControlDirFormat.register_server_prober`.
`BzrDirFormat.probe_transport` has been moved onto `Prober`.
`BzrDirFormat.register_format` has been renamed to
`BzrProber.register_bzrdir_format`.
`bzrlib.bzrdir.network_format_registry` has been moved to
`bzrlib.controldir`.
(Jelmer Vernooij)
* ``bzrlib.transform.TreeTransformBase.final_kind``,
``bzrlib.transform.TreeTransform.tree_kind`` and
``bzrlib.transform.TransformPreview.tree_kind`` now return None instead
of raising NoSuchFile. (Vincent Ladeuil)
* BzrError subclasses no longer support the name "message" to be used
as an argument for __init__ or in _fmt format specification as this
breaks in some Python versions. errors.LockError.__init__ argument
is now named "msg" instead of earlier "message".
(Parth Malwankar, #603461)
* Configuration files should now use the ``from_string`` constructor rather
than the ``file`` parameter of the ``_get_parser`` method. The later has
been deprecated. ``from_string`` also accept a ``save=True`` parameter to
have the configuration file immediately written to disk.
(Vincent Ladeuil)
* Deprecate treating a `PushResult` and `PullResult` as an integer for the
relative change in revno.
(Martin Pool)
* `FileInWrongBranch` is deprecated in favour of `PathNotChild` and no
longer raised.
(Martin Pool)
* ``IniBaseConfig`` objects should now use the ``from_string`` constructor
the rather than the ``file`` parameter of the ``_get_parser`` method. The
later has been deprecated. (Vincent Ladeuil)
* InventoryEntry instances now raise AttributeError if you try to assign
to attributes that are irrelevant to that kind of entry. e.g. setting
``symlink_target`` on an InventoryFile will fail. It is still okay to
read those attributes on any kind of InventoryEntry. The complete list
of affected attributes is: ``executable``, ``text_id``, ``text_sha1``,
``text_size`` (only valid for kind == file); ``symlink_target`` (only
valid for kind == link); and ``reference_revision`` (only valid for kind
== tree-reference). (Andrew Bennetts)
* InventoryEntry objects no longer have ``_put_in_tar`` or
``_put_on_disk`` methods. (Andrew Bennetts)
* The ``get_filename`` parameter in the ``config.IniBaseConfig``
constructor has been deprecated, use the ``file_name`` parameter instead.
(Vincent Ladeuil)
* `tree_files` and `internal_tree_files` are now deprecated in favor of
`WorkingTree.open_containing_paths`.
(Martin Pool)
Internals
*********
* Remove used and broken code path in ``BranchInitHookParams.__repr__``.
(Andrew Bennetts)
Testing
*******
* Avoid spurious failures in ssh tests: wait for the SSH server to
actually finish, rather than just waiting for it to negotiate the key
exchange. (John Arbash Meinel, #626876)
* ``build_tree_contents`` can create symlinks.
(Martin Pool, John Arbash Meinel)
* Catch socket errors to avoid
bt.test_sftp_transport.SSHVendorBadConnection.test_bad_connection_ssh
random failures. (Vincent Ladeuil, #601804)
* HTTP test servers will leak less threads (and sockets) and will not hang on
AIX anymore. (Vincent Ladeuil, #405745)
* On platforms that don't support forking give a nice error message saying so
when ``bzr selftest --parallel=fork`` is used. (Martin [gz], #528730)
* Rearrange thread leak detection code to eliminate global state and make it
possible to extend the reporting. (Martin [gz], #633462)
* The old ``bzr selftest --benchmark`` option has been removed.
<https://launchpad.net/bzr-usertest> is an actively-maintained
macrobenchmark suite.
(Martin Pool)
* The test suite now simply holds log files in memory, rather than writing them
out to disk and then reading them back in and deleting them.
(Andrew Bennetts)
* The way ``bzr selftest --parallel`` generates N partitions of tests to
run in parallel has changed. Instead of splitting the list of tests at
N-1 points, it distributes the tests one-by-one into the partitions in a
round robin fashion. This reduces the total time to run the tests in
parallel because a series of slow tests in the test suite will be
distributed evenly among the parallel test suites, rather than slowing
down just one suite. (Andrew Bennetts)
* Tracebacks from a parameterized test are no longer reported against every
parameterization of that test. This was done by adding a hack to
``bzrlib.tests.clone_test`` so that it no longer causes
testtools.TestCase instances to share a details dict.
(Andrew Bennetts, #625574)
..
vim: tw=74 ft=rst ff=unix
|