~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/en/release-notes/bzr-0.16.txt

Merge bzr.dev, update to use new hooks.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
####################
 
2
Bazaar Release Notes
 
3
####################
 
4
 
 
5
.. toctree::
 
6
   :maxdepth: 1
 
7
 
 
8
bzr 0.16
 
9
########
 
10
 
 
11
:Released:  2007-05-07
 
12
 
 
13
Bugfixes
 
14
********
 
15
 
 
16
* Handle when you have 2 directories with similar names, but one has a
 
17
  hyphen. (``'abc'`` versus ``'abc-2'``). The WT4._iter_changes
 
18
  iterator was using direct comparison and ``'abc/a'`` sorts after
 
19
  ``'abc-2'``, but ``('abc', 'a')`` sorts before ``('abc-2',)``.
 
20
  (John Arbash Meinel, #111127)
 
21
 
 
22
* Handle when someone renames a file on disk without telling bzr.
 
23
  Previously we would report the first file as missing, but not show
 
24
  the new unknown file. (John Arbash Meinel, #111288)
 
25
 
 
26
* Avoid error when running hooks after pulling into or pushing from
 
27
  a branch bound to a smartserver branch.  (Martin Pool, #111968)
 
28
 
 
29
Improvements
 
30
************
 
31
 
 
32
* Move developer documentation to doc/developers/. This reduces clutter in
 
33
  the root of the source tree and allows HACKING to be split into multiple
 
34
  files. (Robert Collins, Alexander Belchenko)
 
35
 
 
36
* Clean up the ``WorkingTree4._iter_changes()`` internal loops as well as
 
37
  ``DirState.update_entry()``. This optimizes the core logic for ``bzr
 
38
  diff`` and ``bzr status`` significantly improving the speed of
 
39
  both. (John Arbash Meinel)
 
40
 
 
41
bzr 0.16rc2
 
42
###########
 
43
 
 
44
:Released:  2007-04-30
 
45
 
 
46
Bugfixes
 
47
********
 
48
 
 
49
* Handle the case when you delete a file, and then rename another file
 
50
  on top of it. Also handle the case of ``bzr rm --keep foo``. ``bzr
 
51
  status`` should show the removed file and an unknown file in its
 
52
  place. (John Arbash Meinel, #109993)
 
53
 
 
54
* Bundles properly read and write revision properties that have an
 
55
  empty value. And when the value is not ASCII.
 
56
  (John Arbash Meinel, #109613)
 
57
 
 
58
* Fix the bzr commit message to be in text mode.
 
59
  (Alexander Belchenko, #110901)
 
60
 
 
61
* Also handle when you rename a file and create a file where it used
 
62
  to be. (John Arbash Meinel, #110256)
 
63
 
 
64
* ``WorkingTree4._iter_changes`` should not descend into unversioned
 
65
  directories. (John Arbash Meinel, #110399)
 
66
 
 
67
bzr 0.16rc1
 
68
###########
 
69
 
 
70
:Released:  2007-04-26
 
71
 
 
72
Notes When Upgrading
 
73
********************
 
74
 
 
75
* ``bzr remove`` and ``bzr rm`` will now remove the working file, if
 
76
  it could be recovered again.
 
77
  This has been done for consistency with svn and the unix rm command.
 
78
  The old ``remove`` behaviour has been retained in the new option
 
79
  ``bzr remove --keep``, which will just stop versioning the file,
 
80
  but not delete it.
 
81
  ``bzr remove --force`` have been added which will always delete the
 
82
  files.
 
83
  ``bzr remove`` is also more verbose.
 
84
  (Marius Kruger, #82602)
 
85
 
 
86
Improvements
 
87
************
 
88
 
 
89
* Merge directives can now be supplied as input to `merge` and `pull`,
 
90
  like bundles can.  (Aaron Bentley)
 
91
 
 
92
* Sending the SIGQUIT signal to bzr, which can be done on Unix by
 
93
  pressing Control-Backslash, drops bzr into a debugger.  Type ``'c'``
 
94
  to continue.  This can be disabled by setting the environment variable
 
95
  ``BZR_SIGQUIT_PDB=0``.  (Martin Pool)
 
96
 
 
97
* selftest now supports --list-only to list tests instead of running
 
98
  them. (Ian Clatworthy)
 
99
 
 
100
* selftest now supports --exclude PATTERN (or -x PATTERN) to exclude
 
101
  tests with names that match that regular expression.
 
102
  (Ian Clatworthy, #102679)
 
103
 
 
104
* selftest now supports --randomize SEED to run tests in a random order.
 
105
  SEED is typically the value 'now' meaning 'use the current time'.
 
106
  (Ian Clatworthy, #102686)
 
107
 
 
108
* New option ``--fixes`` to commit, which stores bug fixing annotations as
 
109
  revision properties. Built-in support for Launchpad, Debian, Trac and
 
110
  Bugzilla bug trackers. (Jonathan Lange, James Henstridge, Robert Collins)
 
111
 
 
112
* New API, ``bzrlib.bugtracker.tracker_registry``, for adding support for
 
113
  other bug trackers to ``fixes``. (Jonathan Lange, James Henstridge,
 
114
  Robert Collins)
 
115
 
 
116
* ``selftest`` has new short options ``-f`` and ``-1``.  (Martin
 
117
  Pool)
 
118
 
 
119
* ``bzrlib.tsort.MergeSorter`` optimizations. Change the inner loop
 
120
  into using local variables instead of going through ``self._var``.
 
121
  Improves the time to ``merge_sort`` a 10k revision graph by
 
122
  approximately 40% (~700->400ms).  (John Arbash Meinel)
 
123
 
 
124
* ``make docs`` now creates a man page at ``man1/bzr.1`` fixing bug 107388.
 
125
  (Robert Collins)
 
126
 
 
127
* ``bzr help`` now provides cross references to other help topics using
 
128
  the _see_also facility on command classes. Likewise the bzr_man
 
129
  documentation, and the bzr.1 man page also include this information.
 
130
  (Robert Collins)
 
131
 
 
132
* Tags are now included in logs, that use the long log formatter.
 
133
  (Erik Bågfors, Alexander Belchenko)
 
134
 
 
135
* ``bzr help`` provides a clearer message when a help topic cannot be
 
136
  found. (Robert Collins, #107656)
 
137
 
 
138
* ``bzr help`` now accepts optional prefixes for command help. The help
 
139
  for all commands can now be found at ``bzr help commands/COMMANDNAME``
 
140
  as well as ``bzr help COMMANDNAME`` (which only works for commands
 
141
  where the name is not the same as a more general help topic).
 
142
  (Robert Collins)
 
143
 
 
144
* ``bzr help PLUGINNAME`` will now return the module docstring from the
 
145
  plugin PLUGINNAME. (Robert Collins, #50408)
 
146
 
 
147
* New help topic ``urlspec`` which lists the availables transports.
 
148
  (Goffredo Baroncelli)
 
149
 
 
150
* doc/server.txt updated to document the default bzr:// port
 
151
  and also update the blurb about the hpss' current status.
 
152
  (Robert Collins, #107125).
 
153
 
 
154
* ``bzr serve`` now listens on interface 0.0.0.0 by default, making it
 
155
  serve out to the local LAN (and anyone in the world that can reach the
 
156
  machine running ``bzr serve``. (Robert Collins, #98918)
 
157
 
 
158
* A new smart server protocol version has been added.  It prefixes requests
 
159
  and responses with an explicit version identifier so that future protocol
 
160
  revisions can be dealt with gracefully.  (Andrew Bennetts, Robert Collins)
 
161
 
 
162
* The bzr protocol version 2 indicates success or failure in every response
 
163
  without depending on particular commands encoding that consistently,
 
164
  allowing future client refactorings to be much more robust about error
 
165
  handling. (Robert Collins, Martin Pool, Andrew Bennetts)
 
166
 
 
167
* The smart protocol over HTTP client has been changed to always post to the
 
168
  same ``.bzr/smart`` URL under the original location when it can.  This allows
 
169
  HTTP servers to only have to pass URLs ending in .bzr/smart to the smart
 
170
  server handler, and not arbitrary ``.bzr/*/smart`` URLs.  (Andrew Bennetts)
 
171
 
 
172
* digest authentication is now supported for proxies and HTTP by the urllib
 
173
  based HTTP implementation. Tested against Apache 2.0.55 and Squid
 
174
  2.6.5. Basic and digest authentication are handled coherently for HTTP
 
175
  and proxy: if the user is provided in the URL (bzr command line for HTTP,
 
176
  proxy environment variables for proxies), the password is prompted for
 
177
  (only once). If the password is provided, it is taken into account. Once
 
178
  the first authentication is successful, all further authentication
 
179
  roundtrips are avoided by preventively setting the right authentication
 
180
  header(s).
 
181
  (Vincent Ladeuil).
 
182
 
 
183
Internals
 
184
*********
 
185
 
 
186
* bzrlib API compatability with 0.8 has been dropped, cleaning up some
 
187
  code paths. (Robert Collins)
 
188
 
 
189
* Change the format of chroot URLS so that they can be safely manipulated
 
190
  by generic URL utilities without causing the resulting URLs to have
 
191
  escaped the chroot. A side effect of this is that creating a chroot
 
192
  requires an explicit action using a ChrootServer.
 
193
  (Robert Collins, Andrew Bennetts)
 
194
 
 
195
* Deprecate ``Branch.get_root_id()`` because branches don't have root ids,
 
196
  rather than fixing bug #96847.  (Aaron Bentley)
 
197
 
 
198
* ``WorkingTree.apply_inventory_delta`` provides a better alternative to
 
199
  ``WorkingTree._write_inventory``.  (Aaron Bentley)
 
200
 
 
201
* Convenience method ``TestCase.expectFailure`` ensures that known failures
 
202
  do not silently pass.  (Aaron Bentley)
 
203
 
 
204
* ``Transport.local_abspath`` now raises ``NotLocalUrl`` rather than
 
205
  ``TransportNotPossible``. (Martin Pool, Ian Clatworthy)
 
206
 
 
207
* New SmartServer hooks facility. There are two initial hooks documented
 
208
  in ``bzrlib.transport.smart.SmartServerHooks``. The two initial hooks allow
 
209
  plugins to execute code upon server startup and shutdown.
 
210
  (Robert Collins).
 
211
 
 
212
* SmartServer in standalone mode will now close its listening socket
 
213
  when it stops, rather than waiting for garbage collection. This primarily
 
214
  fixes test suite hangs when a test tries to connect to a shutdown server.
 
215
  It may also help improve behaviour when dealing with a server running
 
216
  on a specific port (rather than dynamically assigned ports).
 
217
  (Robert Collins)
 
218
 
 
219
* Move most SmartServer code into a new package, bzrlib/smart.
 
220
  bzrlib/transport/remote.py contains just the Transport classes that used
 
221
  to be in bzrlib/transport/smart.py.  (Andrew Bennetts)
 
222
 
 
223
* urllib HTTP implementation avoid roundtrips associated with
 
224
  401 (and 407) errors once the authentication succeeds.
 
225
  (Vincent Ladeuil).
 
226
 
 
227
* urlib HTTP now supports querying the user for a proxy password if
 
228
  needed. Realm is shown in the prompt for both HTTP and proxy
 
229
  authentication when the user is required to type a password.
 
230
  (Vincent Ladeuil).
 
231
 
 
232
* Renamed SmartTransport (and subclasses like SmartTCPTransport) to
 
233
  RemoteTransport (and subclasses to RemoteTCPTransport, etc).  This is more
 
234
  consistent with its new home in ``bzrlib/transport/remote.py``, and because
 
235
  it's not really a "smart" transport, just one that does file operations
 
236
  via remote procedure calls.  (Andrew Bennetts)
 
237
 
 
238
* The ``lock_write`` method of ``LockableFiles``, ``Repository`` and
 
239
  ``Branch`` now accept a ``token`` keyword argument, so that separate
 
240
  instances of those objects can share a lock if it has the right token.
 
241
  (Andrew Bennetts, Robert Collins)
 
242
 
 
243
* New method ``get_branch_reference`` on ``BzrDir`` allows the detection of
 
244
  branch references - which the smart server component needs.
 
245
 
 
246
* The Repository API ``make_working_trees`` is now permitted to return
 
247
  False when ``set_make_working_trees`` is not implemented - previously
 
248
  an unimplemented ``set_make_working_trees`` implied the result True
 
249
  from ``make_working_trees``. This has been changed to accomodate the
 
250
  smart server, where it does not make sense (at this point) to ever
 
251
  make working trees by default. (Robert Collins)
 
252
 
 
253
* Command objects can now declare related help topics by having _see_also
 
254
  set to a list of related topic. (Robert Collins)
 
255
 
 
256
* ``bzrlib.help`` now delegates to the Command class for Command specific
 
257
  help. (Robert Collins)
 
258
 
 
259
* New class ``TransportListRegistry``, derived from the Registry class, which
 
260
  simplifies tracking the available Transports. (Goffredo Baroncelli)
 
261
 
 
262
* New function ``Branch.get_revision_id_to_revno_map`` which will
 
263
  return a dictionary mapping revision ids to dotted revnos. Since
 
264
  dotted revnos are defined in the context of the branch tip, it makes
 
265
  sense to generate them from a ``Branch`` object.
 
266
  (John Arbash Meinel)
 
267
 
 
268
* Fix the 'Unprintable error' message display to use the repr of the
 
269
  exception that prevented printing the error because the str value
 
270
  for it is often not useful in debugging (e.g. KeyError('foo') has a
 
271
  str() of 'foo' but a repr of 'KeyError('foo')' which is much more
 
272
  useful. (Robert Collins)
 
273
 
 
274
* ``urlutils.normalize_url`` now unescapes unreserved characters, such as "~".
 
275
  (Andrew Bennetts)
 
276
 
 
277
Bugfixes
 
278
********
 
279
 
 
280
* Don't fail bundle selftest if email has 'two' embedded.
 
281
  (Ian Clatworthy, #98510)
 
282
 
 
283
* Remove ``--verbose`` from ``bzr bundle``. It didn't work anyway.
 
284
  (Robert Widhopf-Fenk, #98591)
 
285
 
 
286
* Remove ``--basis`` from the checkout/branch commands - it didn't work
 
287
  properly and is no longer beneficial.
 
288
  (Robert Collins, #53675, #43486)
 
289
 
 
290
* Don't produce encoding error when adding duplicate files.
 
291
  (Aaron Bentley)
 
292
 
 
293
* Fix ``bzr log <file>`` so it only logs the revisions that changed
 
294
  the file, and does it faster.
 
295
  (Kent Gibson, John Arbash Meinel, #51980, #69477)
 
296
 
 
297
* Fix ``InterDirstateTre._iter_changes`` to handle when we come across
 
298
  an empty versioned directory, which now has files in it.
 
299
  (John Arbash Meinel, #104257)
 
300
 
 
301
* Teach ``common_ancestor`` to shortcut when the tip of one branch is
 
302
  inside the ancestry of the other. Saves a lot of graph processing
 
303
  (with an ancestry of 16k revisions, ``bzr merge ../already-merged``
 
304
  changes from 2m10s to 13s).  (John Arbash Meinel, #103757)
 
305
 
 
306
* Fix ``show_diff_trees`` to handle the case when a file is modified,
 
307
  and the containing directory is renamed. (The file path is different
 
308
  in this versus base, but it isn't marked as a rename).
 
309
  (John Arbash Meinel, #103870)
 
310
 
 
311
* FTP now works even when the FTP server does not support atomic rename.
 
312
  (Aaron Bentley, #89436)
 
313
 
 
314
* Correct handling in bundles and merge directives of timezones with
 
315
  that are not an integer number of hours offset from UTC.  Always
 
316
  represent the epoch time in UTC to avoid problems with formatting
 
317
  earlier times on win32.  (Martin Pool, Alexander Belchenko, John
 
318
  Arbash Meinel)
 
319
 
 
320
* Typo in the help for ``register-branch`` fixed. (Robert Collins, #96770)
 
321
 
 
322
* "dirstate" and "dirstate-tags" formats now produce branches compatible
 
323
  with old versions of bzr. (Aaron Bentley, #107168))
 
324
 
 
325
* Handle moving a directory when children have been added, removed,
 
326
  and renamed. (John Arbash Meinel, #105479)
 
327
 
 
328
* Don't preventively use basic authentication for proxy before receiving a
 
329
  407 error. Otherwise people willing to use other authentication schemes
 
330
  may expose their password in the clear (or nearly). This add one
 
331
  roundtrip in case basic authentication should be used, but plug the
 
332
  security hole.
 
333
  (Vincent Ladeuil)
 
334
 
 
335
* Handle HTTP and proxy digest authentication.
 
336
  (Vincent Ladeuil, #94034).
 
337
 
 
338
Testing
 
339
*******
 
340
 
 
341
* Added ``bzrlib.strace.strace`` which will strace a single callable and
 
342
  return a StraceResult object which contains just the syscalls involved
 
343
  in running it. (Robert Collins)
 
344
 
 
345
* New test method ``reduceLockdirTimeout`` to drop the default (ui-centric)
 
346
  default time down to one suitable for tests. (Andrew Bennetts)
 
347
 
 
348
* Add new ``vfs_transport_factory`` attribute on tests which provides the
 
349
  common vfs backing for both the readonly and readwrite transports.
 
350
  This allows the RemoteObject tests to back onto local disk or memory,
 
351
  and use the existing ``transport_server`` attribute all tests know about
 
352
  to be the smart server transport. This in turn allows tests to
 
353
  differentiate between 'transport to access the branch', and
 
354
  'transport which is a VFS' - which matters in Remote* tests.
 
355
  (Robert Collins, Andrew Bennetts)
 
356
 
 
357
* The ``make_branch_and_tree`` method for tests will now create a
 
358
  lightweight checkout for the tree if the ``vfs_transport_factory`` is not
 
359
  a LocalURLServer. (Robert Collins, Andrew Bennetts)
 
360
 
 
361
* Branch implementation tests have been audited to ensure that all URLs
 
362
  passed to Branch APIs use proper URLs, except when local-disk paths
 
363
  are intended. This is so that tests correctly access the test transport
 
364
  which is often not equivalent to local disk in Remote* tests. As part
 
365
  of this many tests were adjusted to remove dependencies on local disk
 
366
  access.
 
367
  (Robert Collins, Andrew Bennetts)
 
368
 
 
369
* Mark bzrlib.tests and bzrlib.tests.TestUtil as providing assertFOO helper
 
370
  functions by adding a ``__unittest`` global attribute. (Robert Collins,
 
371
  Andrew Bennetts, Martin Pool, Jonathan Lange)
 
372
 
 
373
* Refactored proxy and authentication handling to simplify the
 
374
  implementation of new auth schemes for both HTTP and proxy.
 
375
  (Vincent Ladeuil)
 
376
 
 
377
 
 
378
..
 
379
   vim: tw=74 ft=rst ff=unix