~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to NEWS

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2007-04-17 00:59:30 UTC
  • mfrom: (1551.15.4 Aaron's mergeable stuff)
  • Revision ID: pqm@pqm.ubuntu.com-20070417005930-rofskshyjsfzrahh
Fix ftp transport with servers that don't support atomic rename

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
IN DEVELOPMENT
2
2
 
3
 
  BUGFIXES:
4
 
 
5
 
    * ``bzr rm`` now does not insist on ``--force`` to delete files that
6
 
      have been renamed but not otherwise modified.  (Marius Kruger,
7
 
      #111664)
8
 
 
9
 
  IMPROVEMENTS:
10
 
 
11
 
    * Don't show "dots" progress indicators when run non-interactively, such
12
 
      as from cron.  (Martin Pool)
13
 
 
14
 
    * ``info`` now formats locations more nicely and lists "submit" and
15
 
      "public" branches (Aaron Bentley)
16
 
 
17
 
    * New ``pack`` command that will trigger database compression within
18
 
      the repository (Robert Collins)
19
 
 
20
 
    * Implement ``_KnitIndex._load_data`` in a pyrex extension. The pyrex
21
 
      version is approximately 2-3x faster at parsing a ``.kndx`` file.
22
 
      Which yields a measurable improvement for commands which have to
23
 
      read from the repository, such as a 1s => 0.75s improvement in
24
 
      ``bzr diff`` when there are changes to be shown.  (John Arbash Meinel)
25
 
 
26
 
    * Merge is now faster.  Depending on the scenario, it can be more than 2x
27
 
      faster. (Aaron Bentley)
28
 
 
29
 
    * Give a clearer warning, and allow ``python setup.py install`` to
30
 
      succeed even if pyrex is not available.
31
 
      (John Arbash Meinel)
32
 
 
33
 
  LIBRARY API BREAKS:
34
 
 
35
 
    * Deprecated dictionary ``bzrlib.option.SHORT_OPTIONS`` removed.
36
 
      Options are now required to provide a help string and it must
37
 
      comply with the style guide by being one or more sentences with an
38
 
      initial capital and final period. (Martin Pool)
39
 
 
40
 
  INTERNALS:
41
 
 
42
 
    * merge now uses iter_changes to calculate changes, which makes room for
43
 
      future performance increases.  It is also more consistent with other
44
 
      operations that perform comparisons, and reduces reliance on
45
 
      Tree.inventory.  (Aaron Bentley)
46
 
 
47
 
    * Most functions now accept ``bzrlib.revision.NULL_REVISION`` to indicate
48
 
      the null revision, and consider using ``None`` for this purpose
49
 
      deprecated.  (Aaron Bentley)
50
 
 
51
 
  TESTING:
52
 
 
53
 
    * Remove selftest ``--clean-output``, ``--numbered-dirs`` and
54
 
      ``--keep-output`` options, which are obsolete now that tests
55
 
      are done within directories in $TMPDIR.  (Martin Pool)
56
 
 
57
 
 
58
 
bzr 0.18rc1  2007-07-10
59
 
 
60
 
  BUGFIXES:
61
 
 
62
 
    * Do not suppress pipe errors, etc. in non-display commands
63
 
      (Alexander Belchenko, #87178)
64
 
 
65
 
    * Display a useful error message when the user requests to annotate
66
 
      a file that is not present in the specified revision.
67
 
      (James Westby, #122656)
68
 
 
69
 
    * Commands that use status flags now have a reference to 'help
70
 
      status-flags'.  (Daniel Watkins, #113436)
71
 
 
72
 
    * Work around python-2.4.1 inhability to correctly parse the
73
 
      authentication header.
74
 
      (Vincent Ladeuil, #121889)
75
 
 
76
 
    * Use exact encoding for merge directives. (Adeodato Simó, #120591)
77
 
 
78
 
    * Fix tempfile permissions error in smart server tar bundling under
79
 
      Windows. (Martin_, #119330)
80
 
 
81
 
    * Fix detection of directory entries in the inventory. (James Westby)
82
 
 
83
 
    * Fix handling of http code 400: Bad Request When issuing too many ranges.
84
 
      (Vincent Ladeuil, #115209)
85
 
 
86
 
    * Issue a CONNECT request when connecting to an https server
87
 
      via a proxy to enable SSL tunneling.
88
 
     (Vincent Ladeuil, #120678)
89
 
 
90
 
    * Fix ``bzr log -r`` to support selecting merge revisions, both 
91
 
      individually and as part of revision ranges.
92
 
      (Kent Gibson, #4663)
93
 
 
94
 
    * Don't leave cruft behind when failing to acquire a lockdir.
95
 
      (Martin Pool, #109169)
96
 
 
97
 
    * Don't use the '-f' strace option during tests.
98
 
      (Vincent Ladeuil, #102019).
99
 
 
100
 
    * Warn when setting ``push_location`` to a value that will be masked by
101
 
      locations.conf.  (Aaron Bentley, #122286)
102
 
 
103
 
    * Fix commit ordering in corner case (Aaron Bentley, #94975)
104
 
 
105
 
    *  Make annotate behave in a non-ASCII world (Adeodato Simó).
106
 
 
107
 
  IMPROVEMENTS:
108
 
 
109
 
    * The --lsprof-file option now dumps a text rendering of the profiling
110
 
      information if the filename ends in ".txt". It will also convert the
111
 
      profiling information to a format suitable for KCacheGrind if the
112
 
      output filename ends in ".callgrind". Fixes to the lsprofcalltree
113
 
      conversion process by Jean Paul Calderone and Itamar were also merged.
114
 
      See http://ddaa.net/blog/python/lsprof-calltree. (Ian Clatworthy)
115
 
 
116
 
    * ``info`` now defaults to non-verbose mode, displaying only paths and
117
 
      abbreviated format info.  ``info -v`` displays all the information
118
 
      formerly displayed by ``info``.  (Aaron Bentley, Adeodato Simó)
119
 
 
120
 
    * ``bzr missing`` now has better option names ``--this`` and ``--other``.
121
 
      (Elliot Murphy)
122
 
 
123
 
    * The internal ``weave-list`` command has become ``versionedfile-list``,
124
 
      and now lists knits as well as weaves.  (Aaron Bentley)
125
 
 
126
 
    * Automatic merge base selection uses a faster algorithm that chooses
127
 
      better bases in criss-cross merge situations (Aaron Bentley)
128
 
 
129
 
    * Progress reporting in ``commit`` has been improved. The various logical
130
 
      stages are now reported on as follows, namely:
131
 
 
132
 
      * Collecting changes [Entry x/y] - Stage n/m
133
 
      * Saving data locally - Stage n/m
134
 
      * Uploading data to master branch - Stage n/m
135
 
      * Updating the working tree - Stage n/m
136
 
      * Running post commit hooks - Stage n/m
137
 
      
138
 
      If there is no master branch, the 3rd stage is omitted and the total
139
 
      number of stages is adjusted accordingly.
140
 
 
141
 
      Each hook that is run after commit is listed with a name (as hooks
142
 
      can be slow it is useful feedback).
143
 
      (Ian Clatworthy, Robert Collins)
144
 
 
145
 
    * Various operations that are now faster due to avoiding unnecessary
146
 
      topological sorts. (Aaron Bentley)
147
 
 
148
 
    * Make merge directives robust against broken bundles. (Aaron Bentley)
149
 
 
150
 
    * The lsprof filename note is emitted via trace.note(), not standard
151
 
      output.  (Aaron Bentley)
152
 
 
153
 
    * ``bzrlib`` now exports explicit API compatibility information to assist
154
 
      library users and plugins. See the ``bzrlib.api`` module for details.
155
 
      (Robert Collins)
156
 
 
157
 
    * Remove unnecessary lock probes when acquiring a lockdir.
158
 
      (Martin Pool)
159
 
 
160
 
    * ``bzr --version`` now shows the location of the bzr log file, which
161
 
      is especially useful on Windows.  (Martin Pool)
162
 
 
163
 
    * -D now supports hooks to get debug tracing of hooks (though its currently
164
 
      minimal in nature). (Robert Collins)
165
 
 
166
 
    * Long log format reports deltas on merge revisions. 
167
 
      (John Arbash Meinel, Kent Gibson)
168
 
 
169
 
    * Make initial push over ftp more resilient. (John Arbash Meinel)
170
 
 
171
 
    * Print a summary of changes for update just like pull does.
172
 
      (Daniel Watkins, #113990)
173
 
 
174
 
    * Add a -Dhpss option to trace smart protocol requests and responses.
175
 
      (Andrew Bennetts)
176
 
 
177
 
  LIBRARY API BREAKS:
178
 
 
179
 
    * Testing cleanups - 
180
 
     ``bzrlib.repository.RepositoryTestProviderAdapter`` has been moved
181
 
      to ``bzrlib.tests.repository_implementations``;
182
 
      ``bzrlib.repository.InterRepositoryTestProviderAdapter`` has been moved
183
 
      to ``bzrlib.tests.interrepository_implementations``;
184
 
      ``bzrlib.transport.TransportTestProviderAdapter`` has moved to 
185
 
      ``bzrlib.tests.test_transport_implementations``.
186
 
      ``bzrlib.branch.BranchTestProviderAdapter`` has moved to
187
 
      ``bzrlib.tests.branch_implementations``.
188
 
      ``bzrlib.bzrdir.BzrDirTestProviderAdapter`` has moved to 
189
 
      ``bzrlib.tests.bzrdir_implementations``.
190
 
      ``bzrlib.versionedfile.InterVersionedFileTestProviderAdapter`` has moved
191
 
      to ``bzrlib.tests.interversionedfile_implementations``.
192
 
      ``bzrlib.store.revision.RevisionStoreTestProviderAdapter`` has moved to
193
 
      ``bzrlib.tests.revisionstore_implementations``.
194
 
      ``bzrlib.workingtree.WorkingTreeTestProviderAdapter`` has moved to
195
 
      ``bzrlib.tests.workingtree_implementations``.
196
 
      These changes are an API break in the testing infrastructure only.
197
 
      (Robert Collins)
198
 
 
199
 
    * Relocate TestCaseWithRepository to be more central. (Robert Collins)
200
 
 
201
 
    * ``bzrlib.add.smart_add_tree`` will no longer perform glob expansion on
202
 
      win32. Callers of the function should do this and use the new
203
 
      ``MutableTree.smart_add`` method instead. (Robert Collins)
204
 
 
205
 
    * ``bzrlib.add.glob_expand_for_win32`` is now
206
 
      ``bzrlib.win32utils.glob_expand``.  (Robert Collins)
207
 
 
208
 
    * ``bzrlib.add.FastPath`` is now private and moved to 
209
 
      ``bzrlib.mutabletree._FastPath``. (Robert Collins, Martin Pool)
210
 
 
211
 
    * ``LockDir.wait`` removed.  (Martin Pool)
212
 
 
213
 
  INTERNALS:
214
 
 
215
 
    * New SMTPConnection class to unify email handling.  (Adeodato Simó)
216
 
 
217
 
    * Fix documentation of BzrError. (Adeodato Simó)
218
 
 
219
 
    * Make BzrBadParameter an internal error. (Adeodato Simó)
220
 
 
221
 
    * Remove use of 'assert False' to raise an exception unconditionally.
222
 
      (Martin Pool)
223
 
 
224
 
    * Give a cleaner error when failing to decode knit index entry.
225
 
      (Martin Pool)
226
 
 
227
 
    * TreeConfig would mistakenly search the top level when asked for options
228
 
      from a section. It now respects the section argument and only
229
 
      searches the specified section. (James Westby)
230
 
 
231
 
    * Improve ``make api-docs`` output. (John Arbash Meinel)
232
 
 
233
 
    * Use os.lstat rather than os.stat for osutils.make_readonly and
234
 
      osutils.make_writeable. This makes the difftools plugin more
235
 
      robust when dangling symlinks are found. (Elliot Murphy)
236
 
 
237
 
    * New ``-Dlock`` option to log (to ~/.bzr.log) information on when 
238
 
      lockdirs are taken or released.  (Martin Pool)
239
 
 
240
 
    * ``bzrlib`` Hooks are now nameable using ``Hooks.name_hook``. This 
241
 
      allows a nicer UI when hooks are running as the current hook can
242
 
      be displayed. (Robert Collins)
243
 
 
244
 
    * ``Transport.get`` has had its interface made more clear for ease of use.
245
 
      Retrieval of a directory must now fail with either 'PathError' at open
246
 
      time, or raise 'ReadError' on a read. (Robert Collins)
247
 
 
248
 
    * New method ``_maybe_expand_globs`` on the ``Command`` class for 
249
 
      dealing with unexpanded glob lists - e.g. on the win32 platform. This
250
 
      was moved from ``bzrlib.add._prepare_file_list``. (Robert Collins)
251
 
 
252
 
    * ``bzrlib.add.smart_add`` and ``bzrlib.add.smart_add_tree`` are now
253
 
      deprecated in favour of ``MutableTree.smart_add``. (Robert Collins,
254
 
      Martin Pool)
255
 
 
256
 
    * New method ``external_url`` on Transport for obtaining the url to
257
 
      hand to external processes. (Robert Collins)
258
 
 
259
 
    * Teach windows installers to build pyrex/C extensions.
260
 
      (Alexander Belchenko)
261
 
 
262
 
  TESTING:
263
 
 
264
 
    * Removed the ``--keep-output`` option from selftest and clean up test
265
 
      directories as they're used.  This reduces the IO load from 
266
 
      running the test suite and cuts the time by about half.
267
 
      (Andrew Bennetts, Martin Pool)
268
 
 
269
 
    * Add scenarios as a public attribute on the TestAdapter classes to allow
270
 
      modification of the generated scenarios before adaption and easier
271
 
      testing. (Robert Collins)
272
 
 
273
 
    * New testing support class ``TestScenarioApplier`` which multiplies
274
 
      out a single teste by a list of supplied scenarios. (RobertCollins)
275
 
 
276
 
    * Setting ``repository_to_test_repository`` on a repository_implementations
277
 
      test will cause it to be called during repository creation, allowing the
278
 
      testing of repository classes which are not based around the Format
279
 
      concept. For example a repository adapter can be tested in this manner,
280
 
      by altering the repository scenarios to include a scenario that sets this
281
 
      attribute during the test parameterisation in
282
 
      ``bzrlib.tests.repository.repository_implementations``. (Robert Collins)
283
 
 
284
 
    * Clean up many of the APIs for blackbox testing of Bazaar.  The standard 
285
 
      interface is now self.run_bzr.  The command to run can be passed as
286
 
      either a list of parameters, a string containing the command line, or
287
 
      (deprecated) varargs parameters.  (Martin Pool)
288
 
 
289
 
    * The base TestCase now isolates tests from -D parameters by clearing
290
 
      ``debug.debug_flags`` and restores it afterwards. (Robert Collins)
291
 
 
292
 
    * Add a relpath parameter to get_transport methods in test framework to
293
 
      avoid useless cloning.
294
 
      (Vincent Ladeuil, #110448)
295
 
 
296
 
 
297
 
bzr 0.17  2007-06-18
298
 
 
299
 
  BUGFIXES:
300
 
 
301
 
    * Fix crash of commit due to wrong lookup of filesystem encoding.
302
 
      (Colin Watson, #120647)
303
 
 
304
 
    * Revert logging just to stderr in commit as broke unicode filenames.
305
 
      (Aaron Bentley, Ian Clatworthy, #120930)
306
 
 
307
 
 
308
 
bzr 0.17rc1  2007-06-12
309
 
 
310
 
  NOTES WHEN UPGRADING:
311
 
 
312
 
    * The kind() and is_executable() APIs on the WorkingTree interface no
313
 
      longer implicitly (read) locks and unlocks the tree. This *might*
314
 
      impact some plug-ins and tools using this part of the API. If you find
315
 
      an issue that may be caused by this change, please let us know,
316
 
      particularly the plug-in/tool maintainer. If encountered, the API
317
 
      fix is to surround kind() and is_executable() calls with lock_read()
318
 
      and unlock() like so::
319
 
 
320
 
        work_tree.lock_read()
321
 
        try:
322
 
            kind = work_tree.kind(...)
323
 
        finally:
324
 
            work_tree.unlock()
325
 
 
326
 
  INTERNALS:
327
 
    * Rework of LogFormatter API to provide beginning/end of log hooks and to
328
 
      encapsulate the details of the revision to be logged in a LogRevision
329
 
      object.
330
 
      In long log formats, merge revision ids are only shown when --show-ids
331
 
      is specified, and are labelled "revision-id:", as per mainline
332
 
      revisions, instead of "merged:". (Kent Gibson)
333
 
 
334
 
    * New ``BranchBuilder`` API which allows the construction of particular
335
 
      histories quickly. Useful for testing and potentially other applications
336
 
      too. (Robert Collins)
337
 
 
338
 
  IMPROVEMENTS:
339
 
  
340
 
    * There are two new help topics, working-trees and repositories that
341
 
      attempt to explain these concepts. (James Westby, John Arbash Meinel,
342
 
      Aaron Bentley)
343
 
 
344
 
    * Added ``bzr log --limit`` to report a limited number of revisions.
345
 
      (Kent Gibson, #3659)
346
 
 
347
 
    * Revert does not try to preserve file contents that were originally
348
 
      produced by reverting to a historical revision.  (Aaron Bentley)
349
 
 
350
 
    * ``bzr log --short`` now includes ``[merge]`` for revisions which
351
 
      have more than one parent. This is a small improvement to help
352
 
      understanding what changes have occurred
353
 
      (John Arbash Meinel, #83887)
354
 
 
355
 
    * TreeTransform avoids many renames when contructing large trees,
356
 
      improving speed.  3.25x speedups have been observed for construction of
357
 
      kernel-sized-trees, and checkouts are 1.28x faster.  (Aaron Bentley)
358
 
 
359
 
    * Commit on large trees is now faster. In my environment, a commit of
360
 
      a small change to the Mozilla tree (55k files) has dropped from
361
 
      66 seconds to 32 seconds. For a small tree of 600 files, commit of a
362
 
      small change is 33% faster. (Ian Clatworthy)
363
 
 
364
 
    * New --create-prefix option to bzr init, like for push.  (Daniel Watkins,
365
 
      #56322)
366
 
 
367
 
  BUGFIXES:
368
 
 
369
 
    * ``bzr push`` should only connect to the remote location one time.
370
 
      We have been connecting 3 times because we forget to pass around
371
 
      the Transport object. This adds ``BzrDir.clone_on_transport()``, so
372
 
      that we can pass in the Transport that we already have.
373
 
      (John Arbash Meinel, #75721)
374
 
 
375
 
    * ``DirState.set_state_from_inventory()`` needs to properly order
376
 
      based on split paths, not just string paths.
377
 
      (John Arbash Meinel, #115947)
378
 
 
379
 
    * Let TestUIFactoy encode the password prompt with its own stdout.
380
 
      (Vincent Ladeuil, #110204)
381
 
 
382
 
    * pycurl should take use the range header that takes the range hint
383
 
      into account.
384
 
      (Vincent Ladeuil, #112719)
385
 
 
386
 
    * WorkingTree4.get_file_sha1 no longer raises an exception when invoked
387
 
      on a missing file.  (Aaron Bentley, #118186)
388
 
 
389
 
    * WorkingTree.remove works correctly with tree references, and when pwd is
390
 
      not the tree root. (Aaron Bentley)
391
 
 
392
 
    * Merge no longer fails when a file is renamed in one tree and deleted
393
 
      in the other. (Aaron Bentley, #110279)
394
 
 
395
 
    * ``revision-info`` now accepts dotted revnos, doesn't require a tree,
396
 
      and defaults to the last revision (Matthew Fuller, #90048)
397
 
 
398
 
    * Tests no longer fail when BZR_REMOTE_PATH is set in the environment.
399
 
      (Daniel Watkins, #111958)
400
 
 
401
 
    * ``bzr branch -r revid:foo`` can be used to branch any revision in
402
 
      your repository. (Previously Branch6 only supported revisions in your
403
 
      mainline). (John Arbash Meinel, #115343)
404
 
 
405
 
bzr 0.16  2007-05-07
406
 
  
407
 
  BUGFIXES:
408
 
 
409
 
    * Handle when you have 2 directories with similar names, but one has a
410
 
      hyphen. (``'abc'`` versus ``'abc-2'``). The WT4._iter_changes
411
 
      iterator was using direct comparison and ``'abc/a'`` sorts after
412
 
      ``'abc-2'``, but ``('abc', 'a')`` sorts before ``('abc-2',)``.
413
 
      (John Arbash Meinel, #111227)
414
 
 
415
 
    * Handle when someone renames a file on disk without telling bzr.
416
 
      Previously we would report the first file as missing, but not show
417
 
      the new unknown file. (John Arbash Meinel, #111288)
418
 
 
419
 
    * Avoid error when running hooks after pulling into or pushing from
420
 
      a branch bound to a smartserver branch.  (Martin Pool, #111968)
421
 
 
422
 
  IMPROVEMENTS:
423
 
 
424
 
    * Move developer documentation to doc/developers/. This reduces clutter in
425
 
      the root of the source tree and allows HACKING to be split into multiple
426
 
      files. (Robert Collins, Alexander Belchenko)
427
 
 
428
 
    * Clean up the ``WorkingTree4._iter_changes()`` internal loops as well as
429
 
      ``DirState.update_entry()``. This optimizes the core logic for ``bzr
430
 
      diff`` and ``bzr status`` significantly improving the speed of
431
 
      both. (John Arbash Meinel)
432
 
 
433
 
bzr 0.16rc2  2007-04-30
434
 
 
435
 
  BUGFIXES:
436
 
 
437
 
    * Handle the case when you delete a file, and then rename another file
438
 
      on top of it. Also handle the case of ``bzr rm --keep foo``. ``bzr
439
 
      status`` should show the removed file and an unknown file in its
440
 
      place. (John Arbash Meinel, #109993)
441
 
 
442
 
    * Bundles properly read and write revision properties that have an
443
 
      empty value. And when the value is not ASCII.
444
 
      (John Arbash Meinel, #109613)
445
 
 
446
 
    * Fix the bzr commit message to be in text mode.
447
 
      (Alexander Belchenko, #110901)
448
 
 
449
 
    * Also handle when you rename a file and create a file where it used
450
 
      to be. (John Arbash Meinel, #110256)
451
 
 
452
 
    * ``WorkingTree4._iter_changes`` should not descend into unversioned
453
 
      directories. (John Arbash Meinel, #110399)
454
 
 
455
 
bzr 0.16rc1  2007-04-26
456
 
 
457
 
  NOTES WHEN UPGRADING:
458
 
 
459
 
    * ``bzr remove`` and ``bzr rm`` will now remove the working file, if
460
 
      it could be recovered again.
461
 
      This has been done for consistency with svn and the unix rm command.
462
 
      The old ``remove`` behaviour has been retained in the new option
463
 
      ``bzr remove --keep``, which will just stop versioning the file,
464
 
      but not delete it.
465
 
      ``bzr remove --force`` have been added which will always delete the
466
 
      files.
467
 
      ``bzr remove`` is also more verbose.
468
 
      (Marius Kruger, #82602)
469
 
 
470
3
  IMPROVEMENTS:
471
4
 
472
5
    * Merge directives can now be supplied as input to `merge` and `pull`,
473
6
      like bundles can.  (Aaron Bentley)
474
7
 
475
 
    * Sending the SIGQUIT signal to bzr, which can be done on Unix by
476
 
      pressing Control-Backslash, drops bzr into a debugger.  Type ``'c'``
477
 
      to continue.  This can be disabled by setting the environment variable
478
 
      ``BZR_SIGQUIT_PDB=0``.  (Martin Pool)
479
 
 
480
 
    * selftest now supports --list-only to list tests instead of running
481
 
      them. (Ian Clatworthy)
482
 
 
483
 
    * selftest now supports --exclude PATTERN (or -x PATTERN) to exclude
484
 
      tests with names that match that regular expression.
485
 
      (Ian Clatworthy, #102679)
486
 
 
487
 
    * selftest now supports --randomize SEED to run tests in a random order.
488
 
      SEED is typically the value 'now' meaning 'use the current time'.
489
 
      (Ian Clatworthy, #102686)
490
 
 
491
 
    * New option ``--fixes`` to commit, which stores bug fixing annotations as
492
 
      revision properties. Built-in support for Launchpad, Debian, Trac and
493
 
      Bugzilla bug trackers. (Jonathan Lange, James Henstridge, Robert Collins)
494
 
 
495
 
    * New API, ``bzrlib.bugtracker.tracker_registry``, for adding support for
496
 
      other bug trackers to ``fixes``. (Jonathan Lange, James Henstridge,
497
 
      Robert Collins)
498
 
 
499
 
    * ``selftest`` has new short options ``-f`` and ``-1``.  (Martin
500
 
      Pool)
501
 
 
502
 
    * ``bzrlib.tsort.MergeSorter`` optimizations. Change the inner loop
503
 
      into using local variables instead of going through ``self._var``.
504
 
      Improves the time to ``merge_sort`` a 10k revision graph by
505
 
      approximately 40% (~700->400ms).  (John Arbash Meinel)
506
 
 
507
 
    * ``make docs`` now creates a man page at ``man1/bzr.1`` fixing bug 107388.
508
 
      (Robert Collins)
509
 
 
510
 
    * ``bzr help`` now provides cross references to other help topics using
511
 
      the _see_also facility on command classes. Likewise the bzr_man
512
 
      documentation, and the bzr.1 man page also include this information.
513
 
      (Robert Collins)
514
 
 
515
 
    * Tags are now included in logs, that use the long log formatter. 
516
 
      (Erik Bågfors, Alexander Belchenko)
517
 
 
518
 
    * ``bzr help`` provides a clearer message when a help topic cannot be
519
 
      found. (Robert Collins, #107656)
520
 
 
521
 
    * ``bzr help`` now accepts optional prefixes for command help. The help
522
 
      for all commands can now be found at ``bzr help commands/COMMANDNAME``
523
 
      as well as ``bzr help COMMANDNAME`` (which only works for commands 
524
 
      where the name is not the same as a more general help topic). 
525
 
      (Robert Collins)
526
 
 
527
 
    * ``bzr help PLUGINNAME`` will now return the module docstring from the
528
 
      plugin PLUGINNAME. (Robert Collins, #50408)
529
 
 
530
 
    * New help topic ``urlspec`` which lists the availables transports.
531
 
      (Goffredo Baroncelli)
532
 
 
533
 
    * doc/server.txt updated to document the default bzr:// port
534
 
      and also update the blurb about the hpss' current status.
535
 
      (Robert Collins, #107125).
536
 
 
537
 
    * ``bzr serve`` now listens on interface 0.0.0.0 by default, making it
538
 
      serve out to the local LAN (and anyone in the world that can reach the
539
 
      machine running ``bzr serve``. (Robert Collins, #98918)
540
 
 
541
 
    * A new smart server protocol version has been added.  It prefixes requests
542
 
      and responses with an explicit version identifier so that future protocol
543
 
      revisions can be dealt with gracefully.  (Andrew Bennetts, Robert Collins)
544
 
 
545
 
    * The bzr protocol version 2 indicates success or failure in every response
546
 
      without depending on particular commands encoding that consistently,
547
 
      allowing future client refactorings to be much more robust about error
548
 
      handling. (Robert Collins, Martin Pool, Andrew Bennetts)
549
 
 
550
 
    * The smart protocol over HTTP client has been changed to always post to the
551
 
      same ``.bzr/smart`` URL under the original location when it can.  This allows
552
 
      HTTP servers to only have to pass URLs ending in .bzr/smart to the smart
553
 
      server handler, and not arbitrary ``.bzr/*/smart`` URLs.  (Andrew Bennetts)
554
 
 
555
 
    * digest authentication is now supported for proxies and HTTP by the urllib
556
 
      based http implementation. Tested against Apache 2.0.55 and Squid
557
 
      2.6.5. Basic and digest authentication are handled coherently for HTTP
558
 
      and proxy: if the user is provided in the url (bzr command line for HTTP,
559
 
      proxy environment variables for proxies), the password is prompted for
560
 
      (only once). If the password is provided, it is taken into account. Once
561
 
      the first authentication is successful, all further authentication
562
 
      roundtrips are avoided by preventively setting the right authentication
563
 
      header(s).
564
 
      (Vincent Ladeuil).
565
 
 
566
8
  INTERNALS:
567
9
 
568
10
    * bzrlib API compatability with 0.8 has been dropped, cleaning up some
574
16
      requires an explicit action using a ChrootServer.
575
17
      (Robert Collins, Andrew Bennetts)
576
18
 
577
 
    * Deprecate ``Branch.get_root_id()`` because branches don't have root ids,
 
19
    * Deprecate Branch.get_root_id() because branches don't have root ids,
578
20
      rather than fixing bug #96847.  (Aaron Bentley)
579
21
 
580
 
    * ``WorkingTree.apply_inventory_delta`` provides a better alternative to
581
 
      ``WorkingTree._write_inventory``.  (Aaron Bentley)
 
22
    * WorkingTree.apply_inventory_delta provides a better alternative to
 
23
      WorkingTree._write_inventory.  (Aaron Bentley)
582
24
 
583
 
    * Convenience method ``TestCase.expectFailure`` ensures that known failures
 
25
    * Convenience method TestCase.expectFailure ensures that known failures
584
26
      do not silently pass.  (Aaron Bentley)
585
27
 
586
 
    * ``Transport.local_abspath`` now raises ``NotLocalUrl`` rather than 
587
 
      ``TransportNotPossible``. (Martin Pool, Ian Clatworthy)
588
 
 
589
28
    * New SmartServer hooks facility. There are two initial hooks documented
590
 
      in ``bzrlib.transport.smart.SmartServerHooks``. The two initial hooks allow
 
29
      in bzrlib.transport.smart.SmartServerHooks. The two initial hooks allow
591
30
      plugins to execute code upon server startup and shutdown.
592
31
      (Robert Collins).
593
32
 
602
41
      bzrlib/transport/remote.py contains just the Transport classes that used
603
42
      to be in bzrlib/transport/smart.py.  (Andrew Bennetts)
604
43
 
605
 
    * urllib http implementation avoid roundtrips associated with
606
 
      401 (and 407) errors once the authentication succeeds.
607
 
      (Vincent Ladeuil).
608
 
 
609
 
    * urlib http now supports querying the user for a proxy password if
610
 
      needed. Realm is shown in the prompt for both HTTP and proxy
611
 
      authentication when the user is required to type a password. 
612
 
      (Vincent Ladeuil).
613
 
 
614
44
    * Renamed SmartTransport (and subclasses like SmartTCPTransport) to
615
45
      RemoteTransport (and subclasses to RemoteTCPTransport, etc).  This is more
616
 
      consistent with its new home in ``bzrlib/transport/remote.py``, and because
 
46
      consistent with its new home in bzrlib/transport/remote.py, and because
617
47
      it's not really a "smart" transport, just one that does file operations
618
48
      via remote procedure calls.  (Andrew Bennetts)
619
49
 
620
50
    * The ``lock_write`` method of ``LockableFiles``, ``Repository`` and
621
 
      ``Branch`` now accept a ``token`` keyword argument, so that separate
622
 
      instances of those objects can share a lock if it has the right token.
623
 
      (Andrew Bennetts, Robert Collins)
624
 
 
625
 
    * New method ``get_branch_reference`` on ``BzrDir`` allows the detection of
626
 
      branch references - which the smart server component needs.
627
 
 
628
 
    * The Repository API ``make_working_trees`` is now permitted to return
629
 
      False when ``set_make_working_trees`` is not implemented - previously
630
 
      an unimplemented ``set_make_working_trees`` implied the result True
631
 
      from ``make_working_trees``. This has been changed to accomodate the
632
 
      smart server, where it does not make sense (at this point) to ever
633
 
      make working trees by default. (Robert Collins)
634
 
 
635
 
    * Command objects can now declare related help topics by having _see_also
636
 
      set to a list of related topic. (Robert Collins)
637
 
 
638
 
    * ``bzrlib.help`` now delegates to the Command class for Command specific
639
 
      help. (Robert Collins)
640
 
 
641
 
    * New class ``TransportListRegistry``, derived from the Registry class, which 
642
 
      simplifies tracking the available Transports. (Goffredo Baroncelli)
643
 
 
644
 
    * New function ``Branch.get_revision_id_to_revno_map`` which will
645
 
      return a dictionary mapping revision ids to dotted revnos. Since
646
 
      dotted revnos are defined in the context of the branch tip, it makes
647
 
      sense to generate them from a ``Branch`` object.
648
 
      (John Arbash Meinel)
649
 
 
650
 
    * Fix the 'Unprintable error' message display to use the repr of the 
651
 
      exception that prevented printing the error because the str value
652
 
      for it is often not useful in debugging (e.g. KeyError('foo') has a
653
 
      str() of 'foo' but a repr of 'KeyError('foo')' which is much more
654
 
      useful. (Robert Collins)
655
 
 
656
 
    * ``urlutils.normalize_url`` now unescapes unreserved characters, such as "~".
657
 
      (Andrew Bennetts)
 
51
     ``Branch`` now accept a ``token`` keyword argument, so that separate
 
52
     instances of those objects can share a lock if it has the right token.
 
53
     (Andrew Bennetts, Robert Collins)
658
54
 
659
55
  BUGFIXES:
660
56
 
661
57
    * Don't fail bundle selftest if email has 'two' embedded.  
662
 
      (Ian Clatworthy, #98510)
 
58
      (#98510, Ian Clatworthy)
663
59
 
664
60
    * Remove ``--verbose`` from ``bzr bundle``. It didn't work anyway.
665
61
      (Robert Widhopf-Fenk, #98591)
666
62
 
667
63
    * Remove ``--basis`` from the checkout/branch commands - it didn't work
668
 
      properly and is no longer beneficial.
669
 
      (Robert Collins, #53675, #43486)
 
64
      properly and is no longer beneficial. Fixes #53675 and #43486.
 
65
      (Robert Collins)
670
66
 
671
67
    * Don't produce encoding error when adding duplicate files.
672
68
      (Aaron Bentley)
673
69
 
674
 
    * Fix ``bzr log <file>`` so it only logs the revisions that changed
675
 
      the file, and does it faster.
676
 
      (Kent Gibson, John Arbash Meinel, #51980, #69477)
677
 
 
678
 
    * Fix ``InterDirstateTre._iter_changes`` to handle when we come across
679
 
      an empty versioned directory, which now has files in it.
680
 
      (John Arbash Meinel, #104257)
681
 
 
682
70
    * Teach ``common_ancestor`` to shortcut when the tip of one branch is
683
71
      inside the ancestry of the other. Saves a lot of graph processing
684
72
      (with an ancestry of 16k revisions, ``bzr merge ../already-merged``
692
80
    * FTP now works even when the FTP server does not support atomic rename.
693
81
      (Aaron Bentley, #89436)
694
82
 
695
 
    * Correct handling in bundles and merge directives of timezones with
696
 
      that are not an integer number of hours offset from UTC.  Always 
697
 
      represent the epoch time in UTC to avoid problems with formatting 
698
 
      earlier times on win32.  (Martin Pool, Alexander Belchenko, John
699
 
      Arbash Meinel)
700
 
 
701
 
    * Typo in the help for ``register-branch`` fixed. (Robert Collins, #96770)
702
 
 
703
 
    * "dirstate" and "dirstate-tags" formats now produce branches compatible
704
 
      with old versions of bzr. (Aaron Bentley, #107168))
705
 
 
706
 
    * Handle moving a directory when children have been added, removed,
707
 
      and renamed. (John Arbash Meinel, #105479)
708
 
 
709
 
    * Don't preventively use basic authentication for proxy before receiving a
710
 
      407 error. Otherwise people willing to use other authentication schemes
711
 
      may expose their password in the clear (or nearly). This add one
712
 
      roundtrip in case basic authentication should be used, but plug the
713
 
      security hole.
714
 
      (Vincent Ladeuil)
715
 
 
716
 
    * Handle http and proxy digest authentication.
717
 
      (Vincent Ladeuil, #94034).
718
 
 
719
83
  TESTING:
720
84
 
721
85
    * Added ``bzrlib.strace.strace`` which will strace a single callable and
725
89
    * New test method ``reduceLockdirTimeout`` to drop the default (ui-centric)
726
90
      default time down to one suitable for tests. (Andrew Bennetts)
727
91
 
728
 
    * Add new ``vfs_transport_factory`` attribute on tests which provides the 
 
92
    * Add new vfs_transport_factory attribute on tests which provides the 
729
93
      common vfs backing for both the readonly and readwrite transports.
730
94
      This allows the RemoteObject tests to back onto local disk or memory,
731
 
      and use the existing ``transport_server`` attribute all tests know about
 
95
      and use the existing transport_server attribute all tests know about
732
96
      to be the smart server transport. This in turn allows tests to 
733
97
      differentiate between 'transport to access the branch', and 
734
98
      'transport which is a VFS' - which matters in Remote* tests.
735
99
      (Robert Collins, Andrew Bennetts)
736
100
 
737
101
    * The ``make_branch_and_tree`` method for tests will now create a 
738
 
      lightweight checkout for the tree if the ``vfs_transport_factory`` is not
 
102
      lightweight checkout for the tree if the vfs_transport_factory is not
739
103
      a LocalURLServer. (Robert Collins, Andrew Bennetts)
740
104
 
741
105
    * Branch implementation tests have been audited to ensure that all urls 
746
110
      access.
747
111
      (Robert Collins, Andrew Bennetts)
748
112
 
749
 
    * Mark bzrlib.tests and bzrlib.tests.TestUtil as providing assertFOO helper
750
 
      functions by adding a ``__unittest`` global attribute. (Robert Collins,
751
 
      Andrew Bennetts, Martin Pool, Jonathan Lange)
752
 
 
753
 
    * Refactored proxy and authentication handling to simplify the
754
 
      implementation of new auth schemes for both http and proxy. 
755
 
      (Vincent Ladeuil)
756
113
 
757
114
bzr 0.15 2007-04-01
758
115
 
782
139
      performances. The http redirections are not followed anymore by
783
140
      default, instead a RedirectRequested exception is raised. For bzrlib
784
141
      users needing to follow http redirections anyway,
785
 
      ``bzrlib.transport.do_catching_redirections`` provide an easy transition
 
142
      bzrlib.transport.do_catching_redirections provide an easy transition
786
143
      path.  (vila)
787
144
 
788
145
  INTERNALS:
791
148
      lock to an OS write lock. Linux can do this without unlocking, Win32
792
149
      needs to unlock in between. (John Arbash Meinel)
793
150
 
794
 
    * New parameter ``recommend_upgrade`` to ``BzrDir.open_workingtree``
 
151
    * New parameter ``recommend_upgrade`` to BzrDir.open_workingtree 
795
152
      to silence (when false) warnings about opening old formats.
796
153
      (Martin Pool)
797
154
 
807
164
 
808
165
  BUGFIXES:
809
166
 
810
 
    * Take ``smtp_server`` from user config into account.
 
167
    * Take smtp_server from user config into account.
811
168
      (vila, #92195)
812
169
 
813
170
    * Restore Unicode filename handling for versioned and unversioned files.
825
182
 
826
183
    * ``bzr commit`` with a kind change was failing to update the
827
184
      last-changed-revision for directories.  The
828
 
      InventoryDirectory._unchanged only looked at the ``parent_id`` and name,
 
185
      InventoryDirectory._unchanged only looked at the parent_id and name,
829
186
      ignoring the fact that the kind could have changed, too.
830
187
      (John Arbash Meinel, #90111)
831
188
 
834
191
      etc. (John Arbash Meinel, #94037)
835
192
 
836
193
    * Correctly handles mutiple permanent http redirections.
837
 
      (vila, #88780)
 
194
     (vila, #88780)
 
195
 
838
196
 
839
197
bzr 0.15rc2  2007-03-14
840
198
 
899
257
    * For users of bzrlib: Two major changes have been made to the working tree
900
258
      api in bzrlib. The first is that many methods and attributes, including
901
259
      the inventory attribute, are no longer valid for use until one of
902
 
      ``lock_read``/``lock_write``/``lock_tree_write`` has been called,
903
 
      and become invalid again after unlock is called. This has been done
904
 
      to improve performance and correctness as part of the dirstate
905
 
      development.
906
 
      (Robert Collins, John A Meinel, Martin Pool, and others).
 
260
      lock_read/lock_write/lock_tree_write has been called, and become invalid
 
261
      again after unlock is called. This has been done to improve performance
 
262
      and correctness as part of the dirstate development. (Robert Collins,
 
263
      John A Meinel, Martin Pool, and others).
907
264
 
908
265
    * For users of bzrlib: The attribute 'tree.inventory' should be considered
909
266
      readonly. Previously it was possible to directly alter this attribute, or
953
310
      directory.  (Martin Pool)
954
311
 
955
312
    * Branch format 6: smaller, and potentially faster than format 5.  Supports
956
 
      ``append_history_only`` mode, where the log view and revnos do not change,
 
313
      "append_history_only" mode, where the log view and revnos do not change,
957
314
      except by being added to.  Stores policy settings in
958
315
      ".bzr/branch/branch.conf".
959
316
 
960
 
    * ``append_only`` branches:  Format 6 branches may be configured so that log
 
317
    * append_only branches:  Format 6 branches may be configured so that log
961
318
      view and revnos are always consistent.  Either create the branch using
962
319
      "bzr init --append-revisions-only" or edit the config file as descriped
963
320
      in docs/configuration.txt.
973
330
      upgrade, run ``bzr upgrade --dirstate-tags`` in your branch and
974
331
      repositories. (Martin Pool)
975
332
 
976
 
    * The ``bzr://`` transport now has a well-known port number, 4155,
977
 
      which it will use by default.  (Andrew Bennetts, Martin Pool)
 
333
    * The bzr:// transport now has a well-known port number, 4155, which it will
 
334
      use by default.  (Andrew Bennetts, Martin Pool)
978
335
 
979
336
    * Bazaar now looks for user-installed plugins before looking for site-wide
980
337
      plugins. (Jonathan Lange)
1000
357
      (John Arbash Meinel)
1001
358
 
1002
359
    * New easier to use Branch hooks facility. There are five initial hooks,
1003
 
      all documented in bzrlib.branch.BranchHooks.__init__ - ``'set_rh'``,
1004
 
      ``'post_push'``, ``'post_pull'``, ``'post_commit'``,
1005
 
      ``'post_uncommit'``. These hooks fire after the matching operation
1006
 
      on a branch has taken place, and were originally added for the
1007
 
      branchrss plugin. (Robert Collins)
 
360
      all documented in bzrlib.branch.BranchHooks.__init__ - 'set_rh',
 
361
      'post_push', 'post_pull', 'post_commit', 'post_uncommit'. These hooks
 
362
      fire after the matching operation on a branch has taken place, and were
 
363
      originally added for the branchrss plugin. (Robert Collins)
1008
364
 
1009
365
    * New method ``Branch.push()`` which should be used when pushing from a
1010
366
      branch as it makes performance and policy decisions to match the UI
1017
373
      repository.
1018
374
      (Robert Collins, Martin Pool)
1019
375
 
1020
 
    * New ``Branch.last_revision_info`` method, this is being done to allow
 
376
    * New Branch.last_revision_info method, this is being done to allow
1021
377
      optimization of requests for both the number of revisions and the last
1022
378
      revision of a branch with smartservers and potentially future branch
1023
379
      formats. (Wouter van Heyst, Robert Collins)
1024
380
 
1025
 
    * Allow ``'import bzrlib.plugins.NAME'`` to work when the plugin NAME has not
1026
 
      yet been loaded by ``load_plugins()``. This allows plugins to depend on each
 
381
    * Allow 'import bzrlib.plugins.NAME' to work when the plugin NAME has not
 
382
      yet been loaded by load_plugins(). This allows plugins to depend on each
1027
383
      other for code reuse without requiring users to perform file-renaming
1028
384
      gymnastics. (Robert Collins)
1029
385
 
1030
 
    * New Repository method ``'gather_stats'`` for statistic data collection.
 
386
    * New Repository method 'gather_stats' for statistic data collection.
1031
387
      This is expected to grow to cover a number of related uses mainly
1032
388
      related to bzr info. (Robert Collins)
1033
389
 
1083
439
 
1084
440
    * Fix problem with UNC paths on Windows 98. (Alexander Belchenko, #84728)
1085
441
 
1086
 
    * Searching location of CA bundle for PyCurl in env variable
1087
 
      (``CURL_CA_BUNDLE``), and on win32 along the PATH.
1088
 
      (Alexander Belchenko, #82086)
 
442
    * Searching location of CA bundle for PyCurl in env variable (CURL_CA_BUNDLE),
 
443
      and on win32 along the PATH. (Alexander Belchenko, #82086)
1089
444
 
1090
445
    * ``bzr init`` works with unicode argument LOCATION.
1091
446
      (Alexander Belchenko, #85599)
1092
447
 
1093
 
    * Raise ``DependencyNotPresent`` if pycurl do not support https. 
1094
 
      (Vincent Ladeuil, #85305)
 
448
    * Raise DependencyNotPresent if pycurl do not support https. (Vincent
 
449
      Ladeuil, #85305)
1095
450
 
1096
451
    * Invalid proxy env variables should not cause a traceback.
1097
452
      (Vincent Ladeuil, #87765)
1200
555
 
1201
556
    * Test suite ends cleanly on Windows.  (Vincent Ladeuil)
1202
557
 
1203
 
    * When ``encoding_type`` attribute of class Command is equal to 'exact', 
 
558
    * When 'encoding_type' attribute of class Command is equal to 'exact', 
1204
559
      force sys.stdout to be a binary stream on Windows, and therefore
1205
560
      keep exact line-endings (without LF -> CRLF conversion).
1206
561
      (Alexander Belchenko)
1224
579
      ``--show-ids`` to display the original revision ids, rather than
1225
580
      revision numbers and committer names. (John Arbash Meinel, #75637)
1226
581
 
1227
 
    * bzr now supports Win32 UNC path (e.g. ``\HOST\path``. 
 
582
    * bzr now supports Win32 UNC path (e.g. \\HOST\path). 
1228
583
      (Alexander Belchenko, #57869)
1229
584
 
1230
585
    * Win32-specific: output of cat, bundle and diff commands don't mangle
1311
666
 
1312
667
    * ``MemoryTransport.list_dir()`` would strip the first character for
1313
668
      files or directories in root directory. (John Arbash Meinel)
1314
 
 
1315
 
    * New method ``get_branch_reference`` on 'BzrDir' allows the detection of 
1316
 
      branch references - which the smart server component needs.
1317
669
  
1318
670
    * New ``ChrootTransportDecorator``, accessible via the ``chroot+`` url
1319
671
      prefix.  It disallows any access to locations above a set URL.  (Andrew
1321
673
 
1322
674
  BUG FIXES:
1323
675
 
1324
 
    * Now ``_KnitIndex`` properly decode revision ids when loading index data.
1325
 
      And optimize the knit index parsing code. 
1326
 
      (Dmitry Vasiliev, John Arbash Meinel)
 
676
    * Now _KnitIndex properly decode revision ids when loading index data.
 
677
      And optimize the knit index parsing code.  (Dmitry Vasiliev, John
 
678
      Arbash Meinel)
1327
679
 
1328
680
    * ``bzrlib/bzrdir.py`` was directly referencing ``bzrlib.workingtree``,
1329
681
      without importing it. This prevented ``bzr upgrade`` from working
1344
696
      line (for the urllib implementation). Don't request already
1345
697
      known passwords (Vincent Ladeuil, #42383, #44647, #48527)
1346
698
 
1347
 
    * ``_KnitIndex.add_versions()`` dictionary compresses revision ids as they
 
699
    * _KnitIndex.add_versions() dictionary compresses revision ids as they
1348
700
      are added. This fixes bug where fetching remote revisions records
1349
 
      them as full references rather than integers.
1350
 
      (John Arbash Meinel, #64789)
 
701
      them as full references rather than integers. (John Arbash Meinel,
 
702
      #64789)
1351
703
 
1352
704
    * ``bzr ignore`` strips trailing slashes in patterns.
1353
705
      Also ``bzr ignore`` rejects absolute paths. (Kent Gibson, #4559)
1413
765
    * New Registry class to provide name-to-object registry-like support,
1414
766
      for example for schemes where plugins can register new classes to
1415
767
      do certain tasks (e.g. log formatters). Also provides lazy registration
1416
 
      to allow modules to be loaded on request.
1417
 
      (John Arbash Meinel, Adeodato Simó)
 
768
      to allow modules to be loaded on request. (John Arbash Meinel, Adeodato
 
769
      Simó)
1418
770
 
1419
771
  API INCOMPATABILITY:
1420
772
  
1440
792
      (Aaron Bentley)
1441
793
 
1442
794
    * ``WorkingTree.set_root_id(None)`` is now deprecated. Please
1443
 
      pass in ``inventory.ROOT_ID`` if you want the default root id value.
 
795
      pass in inventory.ROOT_ID if you want the default root id value.
1444
796
      (Robert Collins, John Arbash Meinel)
1445
797
 
1446
798
    * New method ``WorkingTree.flush()`` which will write the current memory
1447
 
      inventory out to disk. At the same time, ``read_working_inventory`` will
 
799
      inventory out to disk. At the same time, read_working_inventory will
1448
800
      no longer trash the current tree inventory if it has been modified within
1449
801
      the current lock, and the tree will now ``flush()`` automatically on
1450
802
      ``unlock()``. ``WorkingTree.set_root_id()`` has been updated to take
1551
903
      modules will not actually be imported if they are not used.
1552
904
      (John Arbash Meinel)
1553
905
 
1554
 
    * Support ``bzr://`` and ``bzr+ssh://`` urls to work with the new RPC-based
 
906
    * Support bzr:// and bzr+ssh:// urls to work with the new RPC-based
1555
907
      transport which will be used with the upcoming high-performance smart
1556
908
      server. The new command ``bzr serve`` will invoke bzr in server mode,
1557
909
      which processes these requests. (Andrew Bennetts, Robert Collins, Martin
1564
916
 
1565
917
  BUG FIXES:
1566
918
 
1567
 
    * ``'bzr inventory [FILE...]'`` allows restricting the file list to a
 
919
    * 'bzr inventory [FILE...]' allows restricting the file list to a
1568
920
      specific set of files. (John Arbash Meinel, #3631)
1569
921
 
1570
922
    * Don't abort when annotating empty files (John Arbash Meinel, #56814)
1596
948
    * Handle when LANG is not recognized by python. Emit a warning, but
1597
949
      just revert to using 'ascii'. (John Arbash Meinel, #35392)
1598
950
 
1599
 
    * Don't use ``preexec_fn`` on win32, as it is not supported by subprocess.
 
951
    * Don't use preexec_fn on win32, as it is not supported by subprocess.
1600
952
      (John Arbash Meinel)
1601
953
 
1602
954
    * Skip specific tests when the dependencies aren't met. This includes
1628
980
      than having HOME set to the same location as the working directory.
1629
981
      (John Arbash Meinel)
1630
982
 
1631
 
    * ``run_bzr_subprocess()`` can take an optional ``env_changes={}`` parameter,
 
983
    * run_bzr_subprocess() can take an optional 'env_changes={}' parameter,
1632
984
      which will update os.environ inside the spawned child. It also can
1633
 
      take a ``universal_newlines=True``, which helps when checking the output
 
985
      take a 'universal_newlines=True', which helps when checking the output
1634
986
      of the command. (John Arbash Meinel)
1635
987
 
1636
988
    * Refactor SFTP vendors to allow easier re-use when ssh is used. 
1637
989
      (Andrew Bennetts)
1638
990
 
1639
 
    * ``Transport.list_dir()`` and ``Transport.iter_files_recursive()`` should always
 
991
    * Transport.list_dir() and Transport.iter_files_recursive() should always
1640
992
      return urlescaped paths. This is now tested (there were bugs in a few
1641
993
      of the transports) (Andrew Bennetts, David Allouche, John Arbash Meinel)
1642
994
 
1643
 
    * New utility function ``symbol_versioning.deprecation_string``. Returns the
 
995
    * New utility function symbol_versioning.deprecation_string. Returns the
1644
996
      formatted string for a callable, deprecation format pair. (Robert Collins)
1645
997
 
1646
998
    * New TestCase helper applyDeprecated. This allows you to call a callable
1648
1000
      the deprecation format string issued for it. (Robert Collins)
1649
1001
 
1650
1002
    * Transport.append and Transport.put have been deprecated in favor of
1651
 
      ``.append_bytes``, ``.append_file``, ``.put_bytes``, and
1652
 
      ``.put_file``. This removes the ambiguity in what type of object the
1653
 
      functions take.  ``Transport.non_atomic_put_{bytes,file}`` has also
1654
 
      been added. Which works similarly to ``Transport.append()`` except for
1655
 
      SFTP, it doesn't have a round trip when opening the file. Also, it
1656
 
      provides functionality for creating a parent directory when trying
1657
 
      to create a file, rather than raise NoSuchFile and forcing the
1658
 
      caller to repeat their request.
 
1003
      .append_bytes, .append_file, .put_bytes, and .put_file. This removes the
 
1004
      ambiguity in what type of object the functions take.
 
1005
      Transport.non_atomic_put_{bytes,file} has also been added. Which works
 
1006
      similarly to Transport.append() except for SFTP, it doesn't have a round
 
1007
      trip when opening the file. Also, it provides functionality for creating
 
1008
      a parent directory when trying to create a file, rather than raise
 
1009
      NoSuchFile and forcing the caller to repeat their request.
1659
1010
      (John Arbash Meinel)
1660
1011
 
1661
1012
    * WorkingTree has a new api ``unversion`` which allow the unversioning of
1662
1013
      entries by their file id. (Robert Collins)
1663
1014
 
1664
 
    * ``WorkingTree.pending_merges`` is deprecated.  Please use the
1665
 
      ``get_parent_ids`` (introduced in 0.10) method instead. (Robert Collins)
 
1015
    * WorkingTree.pending_merges is deprecated.  Please use the get_parent_ids
 
1016
      (introduced in 0.10) method instead. (Robert Collins)
1666
1017
 
1667
 
    * WorkingTree has a new ``lock_tree_write`` method which locks the branch for
 
1018
    * WorkingTree has a new lock_tree_write method which locks the branch for
1668
1019
      read rather than write. This is appropriate for actions which only need
1669
1020
      the branch data for reference rather than mutation. A new decorator
1670
 
      ``needs_tree_write_lock`` is provided in the workingtree module. Like the
1671
 
      ``needs_read_lock`` and ``needs_write_lock`` decorators this allows static 
 
1021
      needs_tree_write_lock is provided in the workingtree module. Like the
 
1022
      needs_read_lock and needs_write_lock decorators this allows static 
1672
1023
      declaration of the locking requirements of a function to ensure that
1673
1024
      a lock is taken out for casual scripts. (Robert Collins, #54107)
1674
1025
 
1689
1040
    * WorkingTree has a new parent class MutableTree which represents the 
1690
1041
      specialisations of Tree which are able to be altered. (Robert Collins)
1691
1042
 
1692
 
    * New methods mkdir and ``put_file_bytes_non_atomic`` on MutableTree that
 
1043
    * New methods mkdir and put_file_bytes_non_atomic on MutableTree that
1693
1044
      mutate the tree and its contents. (Robert Collins)
1694
1045
 
1695
1046
    * Transport behaviour at the root of the URL is now defined and tested.
1700
1051
    * New test helper classs MemoryTree. This is typically accessed via
1701
1052
      ``self.make_branch_and_memory_tree()`` in test cases. (Robert Collins)
1702
1053
      
1703
 
    * Add ``start_bzr_subprocess`` and ``stop_bzr_subprocess`` to allow test
1704
 
      code to continue running concurrently with a subprocess of bzr.
1705
 
      (Andrew Bennetts, Robert Collins)
 
1054
    * Add start_bzr_subprocess and stop_bzr_subprocess to allow test code to
 
1055
      continue running concurrently with a subprocess of bzr. (Andrew Bennetts,
 
1056
      Robert Collins)
1706
1057
 
1707
1058
    * Add a new method ``Transport.get_smart_client()``. This is provided to
1708
1059
      allow upgrades to a richer interface than the VFS one provided by
1716
1067
  
1717
1068
    * 'bzr add --file-ids-from' can be used to specify another path to use
1718
1069
      for creating file ids, rather than generating all new ones. Internally,
1719
 
      the 'action' passed to ``smart_add_tree()`` can return ``file_ids`` that
 
1070
      the 'action' passed to smart_add_tree() can return file_ids that
1720
1071
      will be used, rather than having bzrlib generate new ones.
1721
1072
      (John Arbash Meinel, #55781)
1722
1073
 
1736
1087
    * Help diffutils 2.8.4 get along with binary tests (Marien Zwart: #57614)
1737
1088
 
1738
1089
    * Change LockDir so that if the lock directory doesn't exist when
1739
 
      ``lock_write()`` is called, an attempt will be made to create it.
 
1090
      lock_write() is called, an attempt will be made to create it.
1740
1091
      (John Arbash Meinel, #56974)
1741
1092
 
1742
1093
    * ``bzr uncommit`` preserves pending merges. (John Arbash Meinel, #57660)
1757
1108
    * Handle TZ=UTC properly when reading/writing revisions.
1758
1109
      (John Arbash Meinel, #55783, #56290)
1759
1110
 
1760
 
    * Use ``GPG_TTY`` to allow gpg --cl to work with gpg-agent in a pipeline,
 
1111
    * Use GPG_TTY to allow gpg --cl to work with gpg-agent in a pipeline,
1761
1112
      (passing text to sign in on stdin). (John Arbash Meinel, #54468)
1762
1113
 
1763
1114
    * External diff does the right thing for binaries even in foreign 
1764
1115
      languages. (John Arbash Meinel, #56307)
1765
1116
 
1766
1117
    * Testament handles more cases when content is unicode. Specific bug was
1767
 
      in handling of revision properties.
1768
 
      (John Arbash Meinel, Holger Krekel, #54723)
 
1118
      in handling of revision properties. (John Arbash Meinel, Holger Krekel,
 
1119
      #54723)
1769
1120
 
1770
1121
    * The bzr selftest was failing on installed versions due to a bug in a new
1771
1122
      test helper. (John Arbash Meinel, Robert Collins, #58057)
1788
1139
 
1789
1140
   * The hard-coded built-in ignore rules have been removed. There are
1790
1141
     now two rulesets which are enforced. A user global one in 
1791
 
     ``~/.bazaar/ignore`` which will apply to every tree, and the tree
 
1142
     ~/.bazaar/ignore which will apply to every tree, and the tree
1792
1143
     specific one '.bzrignore'.
1793
 
     ``~/.bazaar/ignore`` will be created if it does not exist, but with
 
1144
     ~/.bazaar/ignore will be created if it does not exist, but with
1794
1145
     a more conservative list than the old default.
1795
1146
     This fixes bugs with default rules being enforced no matter what. 
1796
1147
     The old list of ignore rules from bzr is available by
1812
1163
     proper printing when the user's terminal encoding cannot display 
1813
1164
     the path of a file that has been versioned.
1814
1165
     ``bzr branch`` can take a target URL rather than only a local directory.
1815
 
     ``Branch.get_parent()/set_parent()`` now save a relative path if possible,
 
1166
     Branch.get_parent()/set_parent() now save a relative path if possible,
1816
1167
     and normalize the parent based on root, allowing access across
1817
1168
     different transports. (John Arbash Meinel, Wouter van Heyst, Martin Pool)
1818
1169
     (Malone #48906, #42699, #40675, #5281, #3980, #36363, #43689,
1883
1234
     Also updates things like 'http+pycurl://' if pycurl is not present.
1884
1235
     (John Arbash Meinel) (Malone #47821, #52204)
1885
1236
 
1886
 
   * New env variable ``BZR_PROGRESS_BAR``, sets the default progress bar type.
 
1237
   * New env variable BZR_PROGRESS_BAR, sets the default progress bar type.
1887
1238
     Can be set to 'none' or 'dummy' to disable the progress bar, 'dots' or 
1888
1239
     'tty' to create the respective type. (John Arbash Meinel, #42197, #51107)
1889
1240
 
1915
1266
  BUG FIXES:
1916
1267
 
1917
1268
    * Fix shadowed definition of TestLocationConfig that caused some 
1918
 
      tests not to run.
1919
 
      (Erik Bågfors, Michael Ellerman, Martin Pool, #32587)
 
1269
      tests not to run.  (#32587, Erik Bågfors, Michael Ellerman, 
 
1270
      Martin Pool)
1920
1271
 
1921
1272
    * Fix unnecessary requirement of sign-my-commits that it be run from
1922
1273
      a working directory.  (Martin Pool, Robert Collins)
1923
1274
 
1924
1275
    * 'bzr push location' will only remember the push location if it succeeds
1925
 
      in connecting to the remote location. (John Arbash Meinel, #49742)
 
1276
      in connecting to the remote location. (#49742, John Arbash Meinel)
1926
1277
 
1927
1278
    * 'bzr revert' no longer toggles the executable bit on win32
1928
 
      (John Arbash Meinel, #45010)
 
1279
      (#45010, John Arbash Meinel)
1929
1280
 
1930
1281
    * Handle broken pipe under win32 correctly. (John Arbash Meinel)
1931
1282
    
1940
1291
      and y.
1941
1292
 
1942
1293
    * File-ids containing single- or double-quotes are handled correctly by
1943
 
      push. (Aaron Bentley, #52227)
 
1294
      push.  (#52227, Aaron Bentley)
1944
1295
 
1945
1296
    * Normalize unicode filenames to ensure cross-platform consistency.
1946
1297
      (John Arbash Meinel, #43689)
1953
1304
    * Bundles can properly read binary files with a plain '\r' in them.
1954
1305
      (John Arbash Meinel, #51927)
1955
1306
 
1956
 
    * Tuning ``iter_entries()`` to be more efficient (John Arbash Meinel, #5444)
 
1307
    * Tuning iter_entries() to be more efficient (John Arbash Meinel, #5444)
1957
1308
 
1958
1309
    * Lots of win32 fixes (the test suite passes again).
1959
1310
      (John Arbash Meinel, #50155)
1997
1348
 
1998
1349
    * Use the right suffixes for loading plugins (John Arbash Meinel, #51810)
1999
1350
 
2000
 
    * Fix ``Branch.get_parent()`` to handle the case when the parent is not 
 
1351
    * Fix Branch.get_parent() to handle the case when the parent is not 
2001
1352
      accessible (John Arbash Meinel, #52976)
2002
1353
 
2003
1354
  INTERNALS:
2006
1357
      them to reduce the threshold where  N^2 behaviour occurs in operations
2007
1358
      like status. (Jan Hudec, Robert Collins).
2008
1359
 
2009
 
    * Appending to ``bzrlib.DEFAULT_IGNORE`` is now deprecated. Instead, use
 
1360
    * Appending to bzrlib.DEFAULT_IGNORE is now deprecated. Instead, use
2010
1361
      one of the add functions in bzrlib.ignores. (John Arbash Meinel)
2011
1362
 
2012
1363
    * 'bzr push' should only push the ancestry of the current revision, not
2013
1364
      all of the history in the repository. This is especially important for
2014
1365
      shared repositories. (John Arbash Meinel)
2015
1366
 
2016
 
    * ``bzrlib.delta.compare_trees`` now iterates in alphabetically sorted order,
 
1367
    * bzrlib.delta.compare_trees now iterates in alphabetically sorted order,
2017
1368
      rather than randomly walking the inventories. (John Arbash Meinel)
2018
1369
 
2019
1370
    * Doctests are now run in temporary directories which are cleaned up when
2024
1375
      so that it can be specialized in ways that are useful or efficient for
2025
1376
      different formats.  (Martin Pool, Robert Collins)
2026
1377
 
2027
 
    * Deprecate ``Repository.all_revision_ids``; most methods don't really need
 
1378
    * Deprecate Repository.all_revision_ids; most methods don't really need
2028
1379
      the global revision graph but only that part leading up to a particular
2029
1380
      revision.  (Martin Pool, Robert Collins)
2030
1381
 
2031
 
    * Add a BzrDirFormat ``control_formats`` list which allows for control formats
 
1382
    * Add a BzrDirFormat control_formats list which allows for control formats
2032
1383
      that do not use '.bzr' to store their data - i.e. '.svn', '.hg' etc.
2033
1384
      (Robert Collins, Jelmer Vernooij).
2034
1385
 
2035
 
    * ``bzrlib.diff.external_diff`` can be redirected to any file-like object.
 
1386
    * bzrlib.diff.external_diff can be redirected to any file-like object.
2036
1387
      Uses subprocess instead of spawnvp.
2037
 
      (James Henstridge, John Arbash Meinel, #4047, #48914)
 
1388
      (#4047, #48914, James Henstridge, John Arbash Meinel)
2038
1389
 
2039
1390
    * New command line option '--profile-imports', which will install a custom
2040
1391
      importer to log time to import modules and regex compilation time to 
2041
1392
      sys.stderr (John Arbash Meinel)
2042
1393
 
2043
 
    * 'EmptyTree' is now deprecated, please use ``repository.revision_tree(None)``
 
1394
    * 'EmptyTree' is now deprecated, please use repository.revision_tree(None)
2044
1395
      instead. (Robert Collins)
2045
1396
 
2046
1397
    * "RevisionTree" is now in bzrlib/revisiontree.py. (Robert Collins)
2063
1414
 
2064
1415
    * Separate functionality from assert statements as they are skipped in
2065
1416
      optimized mode of python. Add the same check to pending merges.
2066
 
      (Olaf Conradi, #44443)
 
1417
      (#44443, Olaf Conradi)
2067
1418
 
2068
1419
  CHANGES:
2069
1420
 
2070
1421
    * Do not show the None revision in output of bzr ancestry. (Olaf Conradi)
2071
1422
 
2072
1423
    * Add info on standalone branches without a working tree.
2073
 
      (Olaf Conradi, #44155)
 
1424
      (#44155, Olaf Conradi)
2074
1425
 
2075
 
    * Fix bug in knits when raising InvalidRevisionId. (Olaf Conradi, #44284)
 
1426
    * Fix bug in knits when raising InvalidRevisionId. (#44284, Olaf Conradi)
2076
1427
 
2077
1428
  CHANGES:
2078
1429
 
2079
1430
    * Make editor invocation comply with Debian Policy. First check
2080
1431
      environment variables VISUAL and EDITOR, then try editor from
2081
1432
      alternatives system. If that all fails, fall back to the pre-defined
2082
 
      list of editors. (Olaf Conradi, #42904)
 
1433
      list of editors. (#42904, Olaf Conradi)
2083
1434
 
2084
1435
  NEW FEATURES:
2085
1436
 
2089
1440
 
2090
1441
  INTERNALS:
2091
1442
 
2092
 
    * New public api in InventoryEntry - ``describe_change(old, new)`` which
 
1443
    * New public api in InventoryEntry - 'describe_change(old, new)' which
2093
1444
      provides a human description of the changes between two old and
2094
1445
      new. (Robert Collins, Martin Pool)
2095
1446
 
2138
1489
  IMPROVEMENTS:
2139
1490
 
2140
1491
    * Sftp paths can now be relative, or local, according to the lftp
2141
 
      convention. Paths now take the form::
2142
 
 
2143
 
          sftp://user:pass@host:port/~/relative/path
2144
 
          or
2145
 
          sftp://user:pass@host:port/absolute/path
 
1492
      convention. Paths now take the form:
 
1493
      sftp://user:pass@host:port/~/relative/path
 
1494
      or
 
1495
      sftp://user:pass@host:port/absolute/path
2146
1496
 
2147
1497
    * The FTP transport now tries to reconnect after a temporary
2148
1498
      failure. ftp put is made atomic. (Matthieu Moy)
2151
1501
      reuses them to avoid multiple connections to the same host (like
2152
1502
      sftp did). (Daniel Silverstone)
2153
1503
 
2154
 
    * The ``bzr_man.py`` file has been removed. To create the man page now,
2155
 
      use ``./generate_docs.py man``. The new program can also create other files.
2156
 
      Run ``python generate_docs.py --help`` for usage information.
2157
 
      (Hans Ulrich Niedermann & James Blackwell).
 
1504
    * The bzr_man.py file has been removed. To create the man page now,
 
1505
      use ./generate_docs.py man. The new program can also create other files.
 
1506
      Run "python generate_docs.py --help" for usage information. (Hans
 
1507
      Ulrich Niedermann & James Blackwell).
2158
1508
 
2159
 
    * Man Page now gives full help (James Blackwell).
2160
 
      Help also updated to reflect user config now being stored in .bazaar
2161
 
      (Hans Ulrich Niedermann)
 
1509
    * Man Page now gives full help (James Blackwell). Help also updated to 
 
1510
      reflect user config now being stored in .bazaar (Hans Ulrich
 
1511
      Niedermann)
2162
1512
 
2163
1513
    * It's now possible to set aliases in bazaar.conf (Erik Bågfors)
2164
1514
 
2165
1515
    * Pull now accepts a --revision argument (Erik Bågfors)
2166
1516
 
2167
 
    * ``bzr re-sign`` now allows multiple revisions to be supplied on the command
 
1517
    * 'bzr re-sign' now allows multiple revisions to be supplied on the command
2168
1518
      line. You can now use the following command to sign all of your old
2169
1519
      commits::
2170
1520
 
2253
1603
    * Commit is now verbose by default, and shows changed filenames and the 
2254
1604
      new revision number.  (Robert Collins, Martin Pool)
2255
1605
 
2256
 
    * Unify 'mv', 'move', 'rename'.  (Matthew Fuller, #5379)
 
1606
    * Unify 'mv', 'move', 'rename'.  (#5379, Matthew Fuller)
2257
1607
 
2258
 
    * 'bzr -h' shows help.  (Martin Pool, Ian Bicking, #35940)
 
1608
    * 'bzr -h' shows help.  (#35940, Martin Pool, Ian Bicking)
2259
1609
 
2260
1610
    * Make 'pull' and 'push' remember location on failure using --remember.
2261
1611
      (Olaf Conradi)
2281
1631
 
2282
1632
    * Using Tree Transform for merge, revert, tree-building
2283
1633
 
2284
 
    * WorkingTree.create, Branch.create, ``WorkingTree.create_standalone``,
2285
 
      Branch.initialize are now deprecated. Please see ``BzrDir.create_*`` for
 
1634
    * WorkingTree.create, Branch.create, WorkingTree.create_standalone,
 
1635
      Branch.initialize are now deprecated. Please see BzrDir.create_* for
2286
1636
      replacement API's. (Robert Collins)
2287
1637
 
2288
1638
    * New BzrDir class represents the .bzr control directory and manages
2292
1642
      Repository actions and allows for clean selection of optimised code
2293
1643
      paths. (Robert Collins)
2294
1644
 
2295
 
    * ``bzrlib.fetch.fetch`` and ``bzrlib.fetch.greedy_fetch`` are now
2296
 
      deprecated, please use ``branch.fetch`` or ``repository.fetch``
2297
 
      depending on your needs. (Robert Collins)
 
1645
    * bzrlib.fetch.fetch and bzrlib.fetch.greedy_fetch are now deprecated,
 
1646
      please use 'branch.fetch' or 'repository.fetch' depending on your
 
1647
      needs. (Robert Collins)
2298
1648
 
2299
 
    * deprecated methods now have a ``is_deprecated`` flag on them that can
 
1649
    * deprecated methods now have a 'is_deprecated' flag on them that can
2300
1650
      be checked, if you need to determine whether a given callable is 
2301
1651
      deprecated at runtime. (Robert Collins)
2302
1652
 
2303
1653
    * Progress bars are now nested - see
2304
 
      ``bzrlib.ui.ui_factory.nested_progress_bar``.
2305
 
      (Robert Collins, Robey Pointer)
 
1654
      bzrlib.ui.ui_factory.nested_progress_bar. (Robert Collins, Robey Pointer)
2306
1655
 
2307
 
    * New API call ``get_format_description()`` for each type of format.
 
1656
    * New API call get_format_description() for each type of format.
2308
1657
      (Olaf Conradi)
2309
1658
 
2310
 
    * Changed ``branch.set_parent()`` to accept None to remove parent.
 
1659
    * Changed branch.set_parent() to accept None to remove parent.
2311
1660
      (Olaf Conradi)
2312
1661
 
2313
1662
    * Deprecated BzrError AmbiguousBase.  (Olaf Conradi)
2314
1663
 
2315
1664
    * WorkingTree.branch is now a read only property.  (Robert Collins)
2316
1665
 
2317
 
    * bzrlib.ui.text.TextUIFactory now accepts a ``bar_type`` parameter which
 
1666
    * bzrlib.ui.text.TextUIFactory now accepts a bar_type parameter which
2318
1667
      can be None or a factory that will create a progress bar. This is
2319
1668
      useful for testing or for overriding the bzrlib.progress heuristic.
2320
1669
      (Robert Collins)
2321
1670
 
2322
 
    * New API method ``get_physical_lock_status()`` to query locks present on a
 
1671
    * New API method get_physical_lock_status() to query locks present on a
2323
1672
      transport.  (Olaf Conradi)
2324
1673
 
2325
1674
    * Repository.reconcile now takes a thorough keyword parameter to allow
2326
1675
      requesting an indepth reconciliation, rather than just a data-loss 
2327
1676
      check. (Robert Collins)
2328
1677
 
2329
 
    * ``bzrlib.ui.ui_factory protocol`` now supports ``get_boolean`` to prompt
 
1678
    * bzrlib.ui.ui_factory protocol now supports 'get_boolean' to prompt
2330
1679
      the user for yes/no style input. (Robert Collins)
2331
1680
 
2332
1681
  TESTING:
2334
1683
    * SFTP tests now shortcut the SSH negotiation, reducing test overhead
2335
1684
      for testing SFTP protocol support. (Robey Pointer)
2336
1685
 
2337
 
    * Branch formats are now tested once per implementation (see ``bzrlib.
2338
 
      tests.branch_implementations``. This is analagous to the transport
 
1686
    * Branch formats are now tested once per implementation (see bzrlib.
 
1687
      tests.branch_implementations. This is analagous to the transport
2339
1688
      interface tests, and has been followed up with working tree,
2340
1689
      repository and BzrDir tests. (Robert Collins)
2341
1690
 
2351
1700
 
2352
1701
    * Move test case for uncommit to blackbox tests.  (Olaf Conradi)
2353
1702
 
2354
 
    * ``run_bzr`` and ``run_bzr_captured`` now accept a 'stdin="foo"'
2355
 
      parameter which will provide String("foo") to the command as its stdin.
 
1703
    * run_bzr and run_bzr_captured now accept a 'stdin="foo"' parameter which
 
1704
      will provide String("foo") to the command as its stdin.
2356
1705
 
2357
1706
bzr 0.7 2006-01-09
2358
1707
 
2366
1715
      versioned directories, now use "bzr inventory --kind directory".  
2367
1716
      (Johan Rydberg)
2368
1717
 
2369
 
    * Under Windows configuration directory is now ``%APPDATA%\bazaar\2.0``
 
1718
    * Under Windows configuration directory is now %APPDATA%\bazaar\2.0
2370
1719
      by default. (John Arbash Meinel)
2371
1720
 
2372
 
    * The parent of Bzr configuration directory can be set by ``BZR_HOME``
2373
 
      environment variable. Now the path for it is searched in ``BZR_HOME``,
2374
 
      then in HOME. Under Windows the order is: ``BZR_HOME``, ``APPDATA``
2375
 
      (usually points to ``C:\Documents and Settings\User Name\Application Data``),
2376
 
      ``HOME``. (John Arbash Meinel)
 
1721
    * The parent of Bzr configuration directory can be set by BZR_HOME
 
1722
      environment variable. Now the path for it is searched in BZR_HOME, then
 
1723
      in HOME. Under Windows the order is: BZR_HOME, APPDATA (usually
 
1724
      points to C:\Documents and Settings\User Name\Application Data), HOME.
 
1725
      (John Arbash Meinel)
2377
1726
 
2378
1727
    * Plugins with the same name in different directories in the bzr plugin
2379
1728
      path are no longer loaded: only the first successfully loaded one is
2418
1767
    * Added branch nicks, new nick command, printing them in log output. 
2419
1768
      (Aaron Bentley)
2420
1769
 
2421
 
    * If ``$BZR_PDB`` is set, pop into the debugger when an uncaught exception 
 
1770
    * If $BZR_PDB is set, pop into the debugger when an uncaught exception 
2422
1771
      occurs.  (Martin Pool)
2423
1772
 
2424
1773
    * Accept 'bzr resolved' (an alias for 'bzr resolve'), as this is
2427
1776
    * New ftp transport support (on ftplib), for ftp:// and aftp:// 
2428
1777
      URLs.  (Daniel Silverstone)
2429
1778
 
2430
 
    * Commit editor temporary files now start with ``bzr_log.``, to allow 
 
1779
    * Commit editor temporary files now start with 'bzr_log.', to allow 
2431
1780
      text editors to match the file name and set up appropriate modes or 
2432
1781
      settings.  (Magnus Therning)
2433
1782
 
2442
1791
      revno should be printed.  (Michael Ellerman)
2443
1792
 
2444
1793
    * bzr cat defaults to printing the last version of the file.  
2445
 
      (Matthieu Moy, #3632)
 
1794
      (#3632, Matthieu Moy)
2446
1795
 
2447
1796
    * New global option 'bzr --lsprof COMMAND' runs bzr under the lsprof 
2448
1797
      profiler.  (Denys Duchier)
2486
1835
    * Fix for sftp transport under windows when using interactive auth
2487
1836
 
2488
1837
    * Show files which are both renamed and modified as such in 'bzr 
2489
 
      status' output.  (Daniel Silverstone, #4503)
 
1838
      status' output.  (#4503, Daniel Silverstone)
2490
1839
 
2491
1840
    * Make annotate cope better with revisions committed without a valid 
2492
1841
      email address.  (Marien Zwart)
2493
1842
 
2494
 
    * Fix representation of tab characters in commit messages.
2495
 
      (Harald Meland)
 
1843
    * Fix representation of tab characters in commit messages.  (Harald 
 
1844
      Meland)
2496
1845
 
2497
 
    * List of plugin directories in ``BZR_PLUGIN_PATH`` environment variable is
 
1846
    * List of plugin directories in BZR_PLUGIN_PATH environment variable is
2498
1847
      now parsed properly under Windows. (Alexander Belchenko)
2499
1848
 
2500
1849
    * Show number of revisions pushed/pulled/merged. (Robey Pointer)
2502
1851
    * Keep a cached copy of the basis inventory to speed up operations 
2503
1852
      that need to refer to it.  (Johan Rydberg, Martin Pool)
2504
1853
 
2505
 
    * Fix bugs in bzr status display of non-ascii characters.
2506
 
      (Martin Pool)
 
1854
    * Fix bugs in bzr status display of non-ascii characters.  (Martin 
 
1855
      Pool)
2507
1856
 
2508
 
    * Remove Makefile.in from default ignore list.
2509
 
      (Tollef Fog Heen, Martin Pool, #6413)
 
1857
    * Remove Makefile.in from default ignore list.  (#6413, Tollef Fog 
 
1858
      Heen, Martin Pool)
2510
1859
 
2511
1860
    * Fix failure in 'bzr added'.  (Nathan McCallum, Martin Pool)
2512
1861
 
2521
1870
 
2522
1871
    * Make tests work even if HOME is not set (Aaron Bentley)
2523
1872
 
2524
 
    * Updated ``build_tree`` to use fixed line-endings for tests which read 
 
1873
    * Updated build_tree to use fixed line-endings for tests which read 
2525
1874
      the file cotents and compare. Make some tests use this to pass under
2526
1875
      Windows. (John Arbash Meinel)
2527
1876
 
2534
1883
 
2535
1884
    * Blackbox tests are maintained within the bzrlib.tests.blackbox directory.
2536
1885
      If adding a new test script please add that to
2537
 
      ``bzrlib.tests.blackbox.__init__``. (Robert Collins)
 
1886
      bzrlib.tests.blackbox.__init__. (Robert Collins)
2538
1887
 
2539
1888
    * Much better error message if one of the test suites can't be 
2540
1889
      imported.  (Martin Pool)
2561
1910
      see bzrlib.transport.TransportTestProviderAdapter() for this.
2562
1911
      (Robert Collins).
2563
1912
 
2564
 
    * ``TestCase.build_tree`` uses the transport interface to build trees,
2565
 
      pass in a transport parameter to give it an existing connection.
 
1913
    * TestCase.build_tree uses the transport interface to build trees, pass
 
1914
      in a transport parameter to give it an existing connection.
2566
1915
      (Robert Collins).
2567
1916
 
2568
1917
  INTERNALS:
2570
1919
    * WorkingTree.pull has been split across Branch and WorkingTree,
2571
1920
      to allow Branch only pulls. (Robert Collins)
2572
1921
 
2573
 
    * ``commands.display_command`` now returns the result of the decorated 
 
1922
    * commands.display_command now returns the result of the decorated 
2574
1923
      function. (Robert Collins)
2575
1924
 
2576
 
    * LocationConfig now has a ``set_user_option(key, value)`` call to save
 
1925
    * LocationConfig now has a set_user_option(key, value) call to save
2577
1926
      a setting in its matching location section (a new one is created
2578
1927
      if needed). (Robert Collins)
2579
1928
 
2580
 
    * Branch has two new methods, ``get_push_location`` and
2581
 
      ``set_push_location`` to respectively, get and set the push location.
2582
 
      (Robert Collins)
 
1929
    * Branch has two new methods, get_push_location and set_push_location
 
1930
      to respectively, get and set the push location. (Robert Collins)
2583
1931
 
2584
 
    * ``commands.register_command`` now takes an optional flag to signal that
 
1932
    * commands.register_command now takes an optional flag to signal that
2585
1933
      the registrant is planning to decorate an existing command. When 
2586
1934
      given multiple plugins registering a command is not an error, and
2587
1935
      the original command class (whether built in or a plugin based one) is
2592
1940
    * Some option parsing errors will raise 'BzrOptionError', allowing 
2593
1941
      granular detection for decorating commands. (Robert Collins).
2594
1942
 
2595
 
    * ``Branch.read_working_inventory`` has moved to
2596
 
      ``WorkingTree.read_working_inventory``. This necessitated changes to
2597
 
      ``Branch.get_root_id``, and a move of ``Branch.set_inventory`` to
2598
 
      WorkingTree as well. To make it clear that a WorkingTree cannot always
2599
 
      be obtained ``Branch.working_tree()`` will raise
2600
 
      ``errors.NoWorkingTree`` if one cannot be obtained. (Robert Collins)
 
1943
    * Branch.read_working_inventory has moved to
 
1944
      WorkingTree.read_working_inventory. This necessitated changes to
 
1945
      Branch.get_root_id, and a move of Branch.set_inventory to WorkingTree
 
1946
      as well. To make it clear that a WorkingTree cannot always be obtained
 
1947
      Branch.working_tree() will raise 'errors.NoWorkingTree' if one cannot
 
1948
      be obtained. (Robert Collins)
2601
1949
 
2602
1950
    * All pending merges operations from Branch are now on WorkingTree.
2603
1951
      (Robert Collins)
2604
1952
 
2605
 
    * The follow operations from Branch have moved to WorkingTree::
2606
 
 
2607
 
          add()
2608
 
          commit()
2609
 
          move()
2610
 
          rename_one()
2611
 
          unknowns()
2612
 
 
 
1953
    * The follow operations from Branch have moved to WorkingTree:
 
1954
      add()
 
1955
      commit()
 
1956
      move()
 
1957
      rename_one()
 
1958
      unknowns()
2613
1959
      (Robert Collins)
2614
1960
 
2615
 
    * ``bzrlib.add.smart_add_branch`` is now ``smart_add_tree``. (Robert Collins)
 
1961
    * bzrlib.add.smart_add_branch is now smart_add_tree. (Robert Collins)
2616
1962
 
2617
1963
    * New "rio" serialization format, similar to rfc-822. (Martin Pool)
2618
1964
 
2619
 
    * Rename selftests to ``bzrlib.tests.test_foo``.  (John A Meinel, Martin 
 
1965
    * Rename selftests to `bzrlib.tests.test_foo`.  (John A Meinel, Martin 
2620
1966
      Pool)
2621
1967
 
2622
 
    * ``bzrlib.plugin.all_plugins`` has been changed from an attribute to a 
 
1968
    * bzrlib.plugin.all_plugins has been changed from an attribute to a 
2623
1969
      query method. (Robert Collins)
2624
1970
 
2625
1971
    * New options to read only the table-of-contents of a weave.  
2628
1974
    * Raise NoSuchFile when someone tries to add a non-existant file.
2629
1975
      (Michael Ellerman)
2630
1976
 
2631
 
    * Simplify handling of DivergedBranches in ``cmd_pull()``.
 
1977
    * Simplify handling of DivergedBranches in cmd_pull().
2632
1978
      (Michael Ellerman)
 
1979
                   
2633
1980
   
2634
1981
    * Branch.controlfile* logic has moved to lockablefiles.LockableFiles, which
2635
 
      is exposed as ``Branch().control_files``. Also this has been altered with the
 
1982
      is exposed as Branch().control_files. Also this has been altered with the
2636
1983
      controlfile pre/suffix replaced by simple method names like 'get' and
2637
1984
      'put'. (Aaron Bentley, Robert Collins).
2638
1985
 
2639
1986
    * Deprecated functions and methods can now be marked as such using the 
2640
 
      ``bzrlib.symbol_versioning`` module. Marked method have their docstring
 
1987
      bzrlib.symbol_versioning module. Marked method have their docstring
2641
1988
      updated and will issue a DeprecationWarning using the warnings module
2642
1989
      when they are used. (Robert Collins)
2643
1990
 
2644
 
    * ``bzrlib.osutils.safe_unicode`` now exists to provide parameter coercion
 
1991
    * bzrlib.osutils.safe_unicode now exists to provide parameter coercion
2645
1992
      for functions that need unicode strings. (Robert Collins)
2646
1993
 
2647
1994
bzr 0.6 2005-10-28
2682
2029
    * New command 're-sign' which will regenerate the gpg signature for 
2683
2030
      a revision. (Robert Collins)
2684
2031
 
2685
 
    * If you set ``check_signatures=require`` for a path in 
2686
 
      ``~/.bazaar/branches.conf`` then bzr will invoke your
2687
 
      ``gpg_signing_command`` (defaults to gpg) and record a digital signature
 
2032
    * If you set check_signatures=require for a path in 
 
2033
      ~/.bazaar/branches.conf then bzr will invoke your
 
2034
      gpg_signing_command (defaults to gpg) and record a digital signature
2688
2035
      of your commit. (Robert Collins)
2689
2036
 
2690
2037
    * New sftp transport, based on Paramiko.  (Robey Pointer)
2698
2045
    * 'bzr branch' will now set the branch-name to the last component of the
2699
2046
      output directory, if one was supplied.
2700
2047
 
2701
 
    * If the option ``post_commit`` is set to one (or more) python function
 
2048
    * If the option 'post_commit' is set to one (or more) python function
2702
2049
      names (must be in the bzrlib namespace), then they will be invoked
2703
 
      after the commit has completed, with the branch and ``revision_id`` as
 
2050
      after the commit has completed, with the branch and revision_id as
2704
2051
      parameters. (Robert Collins)
2705
2052
 
2706
2053
    * Merge now has a retcode of 1 when conflicts occur. (Robert Collins)
2767
2114
 
2768
2115
    * Plugins are now loaded under bzrlib.plugins, not bzrlib.plugin, and
2769
2116
      they are made available for other plugins to use. You should not 
2770
 
      import other plugins during the ``__init__`` of your plugin though, as 
 
2117
      import other plugins during the __init__ of your plugin though, as 
2771
2118
      no ordering is guaranteed, and the plugins directory is not on the
2772
2119
      python path. (Robert Collins)
2773
2120
 
2780
2127
      Scott James Remnant.  (Martin Pool)
2781
2128
 
2782
2129
    * Branch.remove has been moved to WorkingTree, which has also gained
2783
 
      ``lock_read``, ``lock_write`` and ``unlock`` methods for convenience.
2784
 
      (Robert Collins)
 
2130
      lock_read, lock_write and unlock methods for convenience. (Robert
 
2131
      Collins)
2785
2132
 
2786
 
    * Two decorators, ``needs_read_lock`` and ``needs_write_lock`` have been
2787
 
      added to the branch module. Use these to cause a function to run in a
 
2133
    * Two decorators, needs_read_lock and needs_write_lock have been added
 
2134
      to the branch module. Use these to cause a function to run in a
2788
2135
      read or write lock respectively. (Robert Collins)
2789
2136
 
2790
 
    * ``Branch.open_containing`` now returns a tuple (Branch, relative-path),
 
2137
    * Branch.open_containing now returns a tuple (Branch, relative-path),
2791
2138
      which allows direct access to the common case of 'get me this file
2792
2139
      from its branch'. (Robert Collins)
2793
2140
 
2794
 
    * Transports can register using ``register_lazy_transport``, and they 
 
2141
    * Transports can register using register_lazy_transport, and they 
2795
2142
      will be loaded when first used.  (Martin Pool)
2796
2143
 
2797
 
    * 'pull' has been factored out of the command as ``WorkingTree.pull()``.
 
2144
    * 'pull' has been factored out of the command as WorkingTree.pull().
2798
2145
      A new option to WorkingTree.pull has been added, clobber, which will
2799
2146
      ignore diverged history and pull anyway.
2800
2147
      (Robert Collins)
2801
2148
 
2802
 
    * config.Config has a ``get_user_option`` call that accepts an option name.
 
2149
    * config.Config has a 'get_user_option' call that accepts an option name.
2803
2150
      This will be looked up in branches.conf and bazaar.conf as normal.
2804
2151
      It is intended that this be used by plugins to support options - 
2805
2152
      options of built in programs should have specific methods on the config.
2806
2153
      (Robert Collins)
2807
2154
 
2808
 
    * ``merge.merge_inner`` now has tempdir as an optional parameter.
2809
 
      (Robert Collins)
 
2155
    * merge.merge_inner now has tempdir as an optional parameter. (Robert
 
2156
      Collins)
2810
2157
 
2811
2158
    * Tree.kind is not recorded at the top level of the hierarchy, as it was
2812
2159
      missing on EmptyTree, leading to a bug with merge on EmptyTrees.
2813
2160
      (Robert Collins)
2814
2161
 
2815
 
    * ``WorkingTree.__del__`` has been removed, it was non deterministic and not 
2816
 
      doing what it was intended to. See ``WorkingTree.__init__`` for a comment
 
2162
    * WorkingTree.__del__ has been removed, it was non deterministic and not 
 
2163
      doing what it was intended to. See WorkingTree.__init__ for a comment
2817
2164
      about future directions. (Robert Collins/Martin Pool)
2818
2165
 
2819
2166
    * bzrlib.transport.http has been modified so that only 404 urllib errors
2824
2171
      to apis like 'put', 'get' and 'has'. This is to provide consistent
2825
2172
      behaviour - it operates on url's only. (Robert Collins)
2826
2173
 
2827
 
    * Transports can register using ``register_lazy_transport``, and they 
 
2174
    * Transports can register using register_lazy_transport, and they 
2828
2175
      will be loaded when first used.  (Martin Pool)
2829
2176
 
2830
 
    * ``merge_flex`` no longer calls ``conflict_handler.finalize()``, instead that
2831
 
      is called by ``merge_inner``. This is so that the conflict count can be 
 
2177
    * 'merge_flex' no longer calls conflict_handler.finalize(), instead that
 
2178
      is called by merge_inner. This is so that the conflict count can be 
2832
2179
      retrieved (and potentially manipulated) before returning to the caller
2833
 
      of ``merge_inner``. Likewise 'merge' now returns the conflict count to the
 
2180
      of merge_inner. Likewise 'merge' now returns the conflict count to the
2834
2181
      caller. (Robert Collins)
2835
2182
 
2836
 
    * ``revision.revision_graph`` can handle having only partial history for
 
2183
    * 'revision.revision_graph can handle having only partial history for
2837
2184
      a revision - that is no revisions in the graph with no parents.
2838
2185
      (Robert Collins).
2839
2186
 
2840
 
    * New ``builtins.branch_files`` uses the standard ``file_list`` rules to
2841
 
      produce a branch and a list of paths, relative to that branch
2842
 
      (Aaron Bentley)
 
2187
    * New builtins.branch_files uses the standard file_list rules to produce
 
2188
      a branch and a list of paths, relative to that branch (Aaron Bentley)
2843
2189
 
2844
2190
    * New TestCase.addCleanup facility.
2845
2191
 
2846
 
    * New ``bzrlib.version_info`` tuple (similar to ``sys.version_info``),
2847
 
      which can be used by programs importing bzrlib.
 
2192
    * New bzrlib.version_info tuple (similar to sys.version_info), which can
 
2193
      be used by programs importing bzrlib.
2848
2194
 
2849
2195
  BUG FIXES:
2850
2196
 
2907
2253
      bzr will correct this when it encounters it. Fixed by
2908
2254
      Robert Collins
2909
2255
 
2910
 
    * HTTP tests now force off the use of ``http_proxy`` for the duration.
 
2256
    * HTTP tests now force off the use of http_proxy for the duration.
2911
2257
      Contributed by Gustavo Niemeyer.
2912
2258
 
2913
2259
    * Fix problems in merging weave-based branches that have 
2966
2312
      bzr branch it cannot understand. This allows for precise
2967
2313
      handling of such circumstances.
2968
2314
 
2969
 
    * Remove RevisionReference class; ``Revision.parent_ids`` is now simply a
2970
 
      list of their ids and ``parent_sha1s`` is a list of their corresponding
 
2315
    * Remove RevisionReference class; Revision.parent_ids is now simply a
 
2316
      list of their ids and parent_sha1s is a list of their corresponding
2971
2317
      sha1s (for old branches only at the moment.)
2972
2318
 
2973
2319
    * New method-object style interface for Commit() and Fetch().
2974
2320
 
2975
 
    * Renamed ``Branch.last_patch()`` to ``Branch.last_revision()``, since
 
2321
    * Renamed Branch.last_patch() to Branch.last_revision(), since
2976
2322
      we call them revisions not patches.
2977
2323
 
2978
 
    * Move ``copy_branch`` to ``bzrlib.clone.copy_branch``.  The destination
 
2324
    * Move copy_branch to bzrlib.clone.copy_branch.  The destination
2979
2325
      directory is created if it doesn't exist.
2980
2326
 
2981
2327
    * Inventories now identify the files which were present by 
2991
2337
      bzr installed by 'bzr selftest'.
2992
2338
 
2993
2339
    * 'bzr selftest' command-line arguments can now be partial ids
2994
 
      of tests to run, e.g. ``bzr selftest test_weave``
 
2340
      of tests to run, e.g. 'bzr selftest test_weave'
2995
2341
 
2996
2342
      
2997
2343
bzr 0.0.9 2005-09-23
3042
2388
      get added when you add a file in the directory.  Contributed by
3043
2389
      Michael Ellerman.
3044
2390
 
3045
 
    * Ignore ``.DS_Store`` (contains Mac metadata) by default.
3046
 
      (Nir Soffer)
 
2391
    * Ignore .DS_Store (contains Mac metadata) by default.  Patch from
 
2392
      Nir Soffer.
3047
2393
 
3048
 
    * If you set ``BZR_EDITOR`` in the environment, it is checked in
 
2394
    * If you set BZR_EDITOR in the environment, it is checked in
3049
2395
      preference to EDITOR and the config file for the interactive commit
3050
2396
      editing program. Related to this is a bugfix where a missing program
3051
2397
      set in EDITOR would cause editing to fail, now the fallback program
3132
2478
  NEW FEATURES:
3133
2479
 
3134
2480
    * Python plugins, automatically loaded from the directories on
3135
 
      ``BZR_PLUGIN_PATH`` or ``~/.bzr.conf/plugins`` by default.
 
2481
      BZR_PLUGIN_PATH or ~/.bzr.conf/plugins by default.
3136
2482
 
3137
2483
    * New 'bzr mkdir' command.
3138
2484
 
3170
2516
    * Moved plugins directory to bzrlib/, so that there's a standard
3171
2517
      plugin directory which is not only installed with bzr itself but
3172
2518
      is also available when using bzr from the development tree.
3173
 
      ``BZR_PLUGIN_PATH`` and ``DEFAULT_PLUGIN_PATH`` are then added to the
 
2519
      BZR_PLUGIN_PATH and DEFAULT_PLUGIN_PATH are then added to the
3174
2520
      standard plugins directory.
3175
2521
 
3176
2522
    * When exporting to a tarball with ``bzr export --format tgz``, put 
3322
2668
 
3323
2669
    * Better help messages for many commands.
3324
2670
 
3325
 
    * Expose ``bzrlib.open_tracefile()`` to start the tracefile; until
 
2671
    * Expose bzrlib.open_tracefile() to start the tracefile; until
3326
2672
      this is called trace messages are just discarded.
3327
2673
 
3328
 
    * New internal function ``find_touching_revisions()`` and hidden
 
2674
    * New internal function find_touching_revisions() and hidden
3329
2675
      command touching-revisions trace the changes to a given file.
3330
2676
 
3331
 
    * Simpler and faster ``compare_inventories()`` function.
 
2677
    * Simpler and faster compare_inventories() function.
3332
2678
 
3333
 
    * ``bzrlib.open_tracefile()`` takes a tracefilename parameter.
 
2679
    * bzrlib.open_tracefile() takes a tracefilename parameter.
3334
2680
 
3335
2681
    * New AtomicFile class.
3336
2682
 
3380
2726
 
3381
2727
    * Some Unicode/locale fixes.
3382
2728
 
3383
 
    * Partial workaround for ``difflib.unified_diff`` not handling
 
2729
    * Partial workaround for difflib.unified_diff not handling
3384
2730
      trailing newlines properly.
3385
2731
 
3386
2732