1
**********************************
2
What's New in Bazaar 2.4 (Oronsay)
3
**********************************
5
Bazaar 2.4 has been released on the 8th of August 2011 and marks the start
6
of a new long-term-stable series. From here, we will only make bugfix
7
releases on the 2.4 series (2.4.1, etc, and support it until February 2013),
8
while 2.5 will become our new development series.
10
This document accumulates a high level summary of what's changed. See the
11
:doc:`../release-notes/index` for a full list.
13
Users are encouraged to upgrade from the other stable series. This
14
document outlines the improvements in Bazaar 2.4 vs Bazaar 2.3. As well as
15
summarizing improvements made to the core product, it highlights
16
enhancements within the broader Bazaar world of potential interest to
19
Bazaar 2.4.0 is fully compatible both locally and on the network with 2.0,
20
2.1, 2.2 and 2.3, and can read and write repositories generated by all
23
Bazaar 2.4.1 includes all the fixes in the un-released 2.0.7, 2.1.5, 2.2.6
24
and 2.3.5 versions that weren't included in 2.4.0 and fixes some bugs on its
27
Bazaar 2.4.2 includes all the fixes in the un-released 2.0.7, 2.1.5, 2.2.6
28
and 2.3.5 versions that weren't included in 2.4.1 and fixes some bugs on its
32
Dropping Python2.4 and Python2.5 support
33
****************************************
35
Bazaar 2.4.0 is the first version of bzr to drop support for python
36
versions before 2.6. The 2.3 series will still be maintained in bugfix
37
mode for people who need older versions of python. You can also use
38
Launchpad to nominate fixes for 2.3. We can't fix everything, but that can
39
help guide us to what people are running into. Upgrading to python2.6
40
allows us to clean up the syntax in our files, and makes it easier to work
41
on python3 compatibility.
46
External merge tool configuration has been added to ``bzr`` core. The name
47
and commandline of one or more external merge tools can be defined in
48
bazaar.conf. See the help topic ``configuration`` for more details.
50
Tagged revisions are copied
51
***************************
53
When tags are copied from a branch, the associated revisions are now copied
54
too if the config entry ``branch.fetch_tags`` is set to True. Operations
55
like branching, merging or pulling will still always copy new tags visible
56
in ``bzr tags``. When the config is set, it will now also copy the
57
revisions and their ancestry. This way tagged revisions will always be
58
present, so that operations like ``bzr log -r tag:foo`` will always work.
60
Deprecated command synonyms
61
***************************
63
Two built-in synonyms for ``bzr branch`` have been deprecated: ``clone`` and
69
* The ``bzr log`` and ``bzr missing`` commands now accept ``-S`` as a
70
shorthand for ``--short``.
75
Option values can now refer to other options in the same configuration file
76
by enclosing them in curly brackets (``{option}``). This is an opt-in
77
feature controlled by the ``bzr.config.expand`` option that should be
78
declared in ``bazaar.conf`` and no other file.
80
Changelog merge plugin
81
**********************
83
The ``changelog_merge`` plugin has been added. It provides a merge hook
84
to automate merging of changes to ``ChangeLog`` files in GNU's change log
85
format. Refer to ``bzr help changelog_merge`` for documentation on how to
86
enable it and what it can do.
88
Faster operations on Large Trees
89
********************************
91
Many bzr commands used to run into pathological behavior on large trees
92
(>10k files), reading the inventory data in random order causing cache
93
thrashing (the fix was backported to bzr-2.3.2). We also updated several
94
code paths that were updating the WT state using an O(tree) operation to
95
one that was an O(changes) operation. A possibly incomplete list is as
96
follows for running commands on a 70k file tree::
98
bzr-2.3.1 bzr-2.3.2 bzr-2.4 action
99
3m39s 1m08s 1m03s bzr co --lightweight
100
38s 8s 2s bzr revert (in a clean tree)
101
4m47s 3m56s 15s bzr merge
102
4m45s 20s 3s bzr pull
103
4m58s 3m00s 2s bzr up
104
9m33s 21s 19s bzr uncommit (including a merge)
105
4m44s 17s 2s bzr uncommit (simple commit)
107
This is a smaller table of times for the Launchpad tree (~8k items)::
109
bzr-2.3.1 bzr-2.4 action
110
5.3s 5.2s bzr co --lightweight
113
3.9s 3.7s bzr uncommit (with merge)
114
0.9s 0.3s bzr uncommit (without merge)
116
Faster stacked branches
117
***********************
119
Creating a stacked branch from a smart server with ``bzr branch
120
--stacked`` is a bit faster now. For small branches it does 20% fewer
121
network roundtrips. Other operations where a local branch is stacked on a
122
branch hosted on a smart server will also benefit.
127
When exporting a tree, you may now use get_export_generator() to
128
do an operation after each file is exported.
133
The ``selftest --exclude`` option can now be specified multiple times and
134
the tests that match any of the specified patterns will be excluded. Only
135
the last specified pattern was previously taken into account.
137
Digital Signature Verification
138
******************************
140
A new command ``bzr verify-signatures`` has been added to check that commits
141
are correctly signed with trusted keys by GPG. This requires python-gpgme to
142
be installed. ``bzr log`` has gained a ``--signatures`` option to list the
143
validity of signatures for each commit. New config options ``acceptable_keys``
144
and ``validate_signatures_in_log`` can be set to control options to these
150
For more detailed information on the changes made, see the the
151
:doc:`../release-notes/index` for:
153
* the interim bzr `milestones <https://launchpad.net/bzr/2.4>`_
154
* the plugins you use.
156
For a summary of changes made in earlier releases, see:
158
* :doc:`whats-new-in-2.1`
159
* :doc:`whats-new-in-2.2`
160
* :doc:`whats-new-in-2.3`
163
vim: tw=74 ft=rst ff=unix