~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/en/whats-new/whats-new-in-2.4.txt

(jameinel) Allow 'bzr serve' to interpret SIGHUP as a graceful shutdown.
 (bug #795025) (John A Meinel)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
**********************************
 
2
What's New in Bazaar 2.4 (Oronsay)
 
3
**********************************
 
4
 
 
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.
 
9
 
 
10
This document accumulates a high level summary of what's changed.  See the
 
11
:doc:`../release-notes/index` for a full list.
 
12
 
 
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
 
17
those upgrading.
 
18
 
 
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
 
21
previous versions.
 
22
 
 
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
 
25
own.
 
26
 
 
27
 
 
28
Dropping Python2.4 and Python2.5 support
 
29
****************************************
 
30
 
 
31
Bazaar 2.4.0 is the first version of bzr to drop support for python
 
32
versions before 2.6. The 2.3 series will still be maintained in bugfix
 
33
mode for people who need older versions of python. You can also use
 
34
Launchpad to nominate fixes for 2.3. We can't fix everything, but that can
 
35
help guide us to what people are running into. Upgrading to python2.6
 
36
allows us to clean up the syntax in our files, and makes it easier to work
 
37
on python3 compatibility.
 
38
 
 
39
External merge tools
 
40
********************
 
41
 
 
42
External merge tool configuration has been added to ``bzr`` core. The name
 
43
and commandline of one or more external merge tools can be defined in
 
44
bazaar.conf. See the help topic ``configuration`` for more details.
 
45
 
 
46
Tagged revisions are copied
 
47
***************************
 
48
 
 
49
When tags are copied from a branch, the associated revisions are now copied
 
50
too if the config entry ``branch.fetch_tags`` is set to True.  Operations
 
51
like branching, merging or pulling will still always copy new tags visible
 
52
in ``bzr tags``. When the config is set, it will now also copy the
 
53
revisions and their ancestry.  This way tagged revisions will always be
 
54
present, so that operations like ``bzr log -r tag:foo`` will always work.
 
55
 
 
56
Deprecated command synonyms
 
57
***************************
 
58
 
 
59
Two built-in synonyms for ``bzr branch`` have been deprecated: ``clone`` and
 
60
``get``.
 
61
 
 
62
Command options
 
63
***************
 
64
 
 
65
* The ``bzr log`` and ``bzr missing`` commands now accept ``-S`` as a
 
66
  shorthand for ``--short``.
 
67
 
 
68
Configuration files
 
69
*******************
 
70
 
 
71
Option values can now refer to other options in the same configuration file
 
72
by enclosing them in curly brackets (``{option}``). This is an opt-in
 
73
feature controlled by the ``bzr.config.expand`` option that should be
 
74
declared in ``bazaar.conf`` and no other file.
 
75
 
 
76
Changelog merge plugin
 
77
**********************
 
78
 
 
79
The ``changelog_merge`` plugin has been added.  It provides a merge hook
 
80
to automate merging of changes to ``ChangeLog`` files in GNU's change log
 
81
format.  Refer to ``bzr help changelog_merge`` for documentation on how to
 
82
enable it and what it can do.
 
83
 
 
84
Faster operations on Large Trees
 
85
********************************
 
86
 
 
87
Many bzr commands used to run into pathological behavior on large trees
 
88
(>10k files), reading the inventory data in random order causing cache
 
89
thrashing (the fix was backported to bzr-2.3.2). We also updated several
 
90
code paths that were updating the WT state using an O(tree) operation to
 
91
one that was an O(changes) operation.  A possibly incomplete list is as
 
92
follows for running commands on a 70k file tree::
 
93
 
 
94
    bzr-2.3.1 bzr-2.3.2 bzr-2.4  action
 
95
    3m39s         1m08s   1m03s  bzr co --lightweight
 
96
      38s            8s      2s  bzr revert (in a clean tree)
 
97
    4m47s         3m56s     15s  bzr merge
 
98
    4m45s           20s      3s  bzr pull
 
99
    4m58s         3m00s      2s  bzr up
 
100
    9m33s           21s     19s  bzr uncommit (including a merge)
 
101
    4m44s           17s      2s  bzr uncommit (simple commit)
 
102
    
 
103
This is a smaller table of times for the Launchpad tree (~8k items)::
 
104
 
 
105
    bzr-2.3.1   bzr-2.4     action
 
106
    5.3s        5.2s        bzr co --lightweight
 
107
    0.9s        0.3s        bzr revert
 
108
    1.4s        0.4s        bzr pull
 
109
    3.9s        3.7s        bzr uncommit (with merge)
 
110
    0.9s        0.3s        bzr uncommit (without merge)
 
111
 
 
112
Faster stacked branches
 
113
***********************
 
114
 
 
115
Creating a stacked branch from a smart server with ``bzr branch
 
116
--stacked`` is a bit faster now.  For small branches it does 20% fewer
 
117
network roundtrips.  Other operations where a local branch is stacked on a
 
118
branch hosted on a smart server will also benefit.
 
119
 
 
120
More export control
 
121
*******************
 
122
 
 
123
When exporting a tree, you may now use get_export_generator() to 
 
124
do an operation after each file is exported. 
 
125
 
 
126
Testing
 
127
*******
 
128
 
 
129
The ``selftest --exclude`` option can now be specified multiple times and
 
130
the tests that match any of the specified patterns will be excluded. Only
 
131
the last specified pattern was previously taken into account.
 
132
 
 
133
Digital Signature Verification
 
134
******************************
 
135
 
 
136
A new command ``bzr verify-signatures`` has been added to check that commits
 
137
are correctly signed with trusted keys by GPG.  This requires python-gpgme to
 
138
be installed.  ``bzr log`` has gained a ``--signatures`` option to list the
 
139
validity of signatures for each commit.  New config options ``acceptable_keys``
 
140
and ``validate_signatures_in_log`` can be set to control options to these
 
141
commands.
 
142
 
 
143
Further information
 
144
*******************
 
145
 
 
146
For more detailed information on the changes made, see the the
 
147
:doc:`../release-notes/index` for:
 
148
 
 
149
* the interim bzr `milestones <https://launchpad.net/bzr/2.4>`_
 
150
* the plugins you use.
 
151
 
 
152
For a summary of changes made in earlier releases, see:
 
153
 
 
154
* :doc:`whats-new-in-2.1`
 
155
* :doc:`whats-new-in-2.2`
 
156
* :doc:`whats-new-in-2.3`
 
157
 
 
158
..
 
159
   vim: tw=74 ft=rst ff=unix