~bzr-pqm/bzr/bzr.dev

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
*************************
What's New in Bazaar 2.3?
*************************

Bazaar 2.3 is still under development, and will be released in February
2011.  This document accumulates a high level summary of what's changed.
See the
:doc:`../release-notes/index` for a full list.

Users are encouraged to upgrade from the other stable series.  This
document outlines the improvements in Bazaar 2.3 vs Bazaar 2.2. As well as
summarizing improvements made to the core product, it highlights
enhancements within the broader Bazaar world of potential interest to
those upgrading.

Bazaar 2.3.0 is fully compatible both locally and on the network with 2.0
2.1, and 2.2, and can read and write repositories generated by all
previous versions.

Changed Behaviour
*****************

* The default ``ignore`` file created by Bazaar will contain ``__pycache__``,
  which is the name of the directory that will be used by Python to store
  bytecode files.
  (Andrea Corbellini, #626687)

* The default sort order for the ``bzr tags`` command now uses a natural sort
  where numeric substrings are sorted numerically.  The previous default was
  "asciibetical" where tags were sorted by the characters they contained.  To
  get the old behavior, one can use ``bzr tags --sort=alpha``.
  (Neil Martinsen-Burrell, #640760)

Launchpad integration
*********************

* 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)

Performance improvements
************************

* ``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)

* ``bzr send`` uses less memory.
  (John Arbash Meinel, #614576)

* 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).  This affects most operations, and depending on the size of the
  tree may substantially improve the speed of operations like ``bzr
  commit``.  (Andrew Bennetts)

* Lower memory consumption when reading many chk index pages. Helpful for
  things like ``bzr co`` or ``bzr ls -R`` on large trees.
  (John Arbash Meinel)

* 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)

New revision specifiers
***********************

* The ``mainline`` revision specifier has been added.  It takes another revision
  spec as its input, and selects the revision which merged that revision into
  the mainline.
  
  For example, ``bzr log -vp -r mainline:1.2.3`` will show the log of the
  revision that merged revision 1.2.3 into mainline, along with its status
  output and diff.  (Aaron Bentley)

* The ``annotate`` revision specifier has been added.  It takes a path and a
  line as its input (in the form ``path:line``), and selects the revision which
  introduced that line of that file.

  For example: ``bzr log -vp -r annotate:bzrlib/transform.py:500`` will select
  the revision that introduced line 500 of transform.py, and display its log,
  status output and diff.

  It can be combined with ``mainline`` to select the revision that landed this
  line into trunk, like so: 
  ``bzr log -vp -r mainline:annotate:bzrlib/transform.py:500``
  (Aaron Bentley)

Testing/Bug reporting
*********************

* Shell-like scripts can now be run directly from the command line without
  writing a python test. This should help users adding reproducing recipes
  to bug reports. (Vincent Ladeuil)


Improved conflict handling
**************************

* ``pull``, ``merge`` or ``switch`` can lead to conflicts when deleting a
  versioned directory contains unversioned files. The cause of the conflict
  is that deleting the directory will orphan the unversioned files so the
  user needs to instruct ``bzr`` what do to do about these orpahns. This is
  controlled by setting the ``bzr.transform.orphan_policy`` configuration
  variable with a value of ``move``. In this case the unversioned files are
  moved to a ``bzr-orphans`` directory at the root of the working tree. The
  default behaviour is specified (if needed) by setting the variable to
  ``conflict``.  (Vincent Ladeuil, #323111)

* ``bzr resolve`` now provides more feedback about the conflicts just
  resolved and the remaining ones. (Vincent Ladeuil)

Documentation
*************

* A beta version of the documentation is now available in GNU TexInfo
  format, used by emacs and the standalone ``info`` reader.
  (Vincent Ladeuil, #219334)

Configuration
*************

``bzr`` can be configured via environment variables, command-line options
and configurations files. We've started working on unifying this and give
access to more options. The first step is a new ``bzr config`` command that
can be used to display the active configuration options in the current
working tree or branch as well as the ability to set or remove an
option. Scripts can also use it to get only the value for a given option.

Expected releases for the 2.3 series
************************************

The 2.3 series has entered the beta phase and 2.3.0 should be released soon
enough to be included into Natty Narwhal. 

As a rough estimate, consider that 2.3.0 will be released in February
2011 and be supported until August 2012. Additional releases will be
made if critical bugs are encountered


Further information
*******************

For more detailed information on the changes made, see the
the :doc:`../release-notes/index` for:

* the interim bzr `milestones <https://launchpad.net/bzr/2.3>`_
* the plugins you use.

For a summary of changes made in earlier releases, see:

* :doc:`whats-new-in-2.1`
* :doc:`whats-new-in-2.2`


.. vim: ft=rst