~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to NEWS

  • Committer: Alexander Belchenko
  • Date: 2007-01-04 23:36:44 UTC
  • mfrom: (2224 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2225.
  • Revision ID: bialix@ukr.net-20070104233644-7znkxoj9b0y7ev28
merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
IN DEVELOPMENT
2
2
 
3
 
  BUGFIXES:
4
 
 
5
 
    * ``bzr init`` should connect to the remote location one time only.  We
6
 
      have been connecting several times because we forget to pass around the
7
 
      Transport object. This modifies ``BzrDir.create_branch_convenience``,
8
 
      so that we can give it the Transport we already have.
9
 
      (John Arbash Meinel, Vincent Ladeuil, #111702)
10
 
 
11
 
    * Get rid of sftp connection cache (get rid of the FTP one too).
12
 
      (Vincent Ladeuil, #43731)
13
 
 
14
 
    * bzr branch {local|remote} remote don't try to create a working tree
15
 
      anymore.
16
 
      (Vincent Ladeuil, #112173)
17
 
 
18
 
    * All identified multiple connections for a single bzr command have been
19
 
      fixed. See bzrlib/tests/commands directory.
20
 
      (Vincent Ladeuil)
21
 
 
22
 
    * ``bzr rm`` now does not insist on ``--force`` to delete files that
23
 
      have been renamed but not otherwise modified.  (Marius Kruger,
24
 
      #111664)
25
 
 
26
 
    * ``bzr selftest --bench`` no longer emits deprecation warnings
27
 
      (Lukáš Lalinský)
28
 
 
29
 
    * ``bzr status`` now honours FILE parameters for conflict lists
30
 
      (Aaron Bentley, #127606)
31
 
 
32
 
    * ``bzr checkout`` now honours -r when reconstituting a working tree.
33
 
      It also honours -r 0.  (Aaron Bentley, #127708)
34
 
 
35
 
    * ``bzr add *`` no more fails on Windows if working tree contains
36
 
      non-ascii file names. (Kuno Meyer, #127361)
37
 
 
38
 
  IMPROVEMENTS:
39
 
 
40
 
    * Don't show "dots" progress indicators when run non-interactively, such
41
 
      as from cron.  (Martin Pool)
42
 
 
43
 
    * ``info`` now formats locations more nicely and lists "submit" and
44
 
      "public" branches (Aaron Bentley)
45
 
 
46
 
    * New ``pack`` command that will trigger database compression within
47
 
      the repository (Robert Collins)
48
 
 
49
 
    * Implement ``_KnitIndex._load_data`` in a pyrex extension. The pyrex
50
 
      version is approximately 2-3x faster at parsing a ``.kndx`` file.
51
 
      Which yields a measurable improvement for commands which have to
52
 
      read from the repository, such as a 1s => 0.75s improvement in
53
 
      ``bzr diff`` when there are changes to be shown.  (John Arbash Meinel)
54
 
 
55
 
    * Merge is now faster.  Depending on the scenario, it can be more than 2x
56
 
      faster. (Aaron Bentley)
57
 
 
58
 
    * Give a clearer warning, and allow ``python setup.py install`` to
59
 
      succeed even if pyrex is not available.
60
 
      (John Arbash Meinel)
61
 
 
62
 
    * ``DirState._read_dirblocks`` now has an optional Pyrex
63
 
      implementation. This improves the speed of any command that has to
64
 
      read the entire DirState. (``diff``, ``status``, etc, improve by
65
 
      about 10%).
66
 
      ``bisect_dirblocks`` has also been improved, which helps all
67
 
      ``_get_entry`` type calls (whenever we are searching for a
68
 
      particular entry in the in-memory DirState).
69
 
      (John Arbash Meinel)
70
 
 
71
 
    * ``bzr pull`` and ``bzr push`` no longer do a complete walk of the 
72
 
      branch revision history for ui display unless -v is supplied.
73
 
      (Robert Collins)
74
 
 
75
 
    * ``bzr log -rA..B`` output shifted to the left margin if the log only 
76
 
      contains merge revisions. (Kent Gibson) 
77
 
 
78
 
    * The ``plugins`` command is now public with improved help.
79
 
      (Ian Clatworthy)
80
 
 
81
 
    * New bundle and merge directive formats are faster to generate, and
82
 
      more robust against email mangling.  New `send` command replaces
83
 
      `bundle-revisions` and `merge-directive`.  (Aaron Bentley)
84
 
 
85
 
    * Annotate merge now works when there are local changes. (Aaron Bentley)
86
 
 
87
 
    * Commit now only shows the progress in terms of directories instead of
88
 
      entries. (Ian Clatworthy)
89
 
 
90
 
    * Fix ``KnitRepository.get_revision_graph`` to not request the graph 2
91
 
      times. This makes ``get_revision_graph`` 2x faster. (John Arbash
92
 
      Meinel)
93
 
 
94
 
    * Fix ``VersionedFile.get_graph()`` to avoid using
95
 
      ``set.difference_update(other)``, which has bad scaling when
96
 
      ``other`` is large. This improves ``VF.get_graph([version_id])`` for
97
 
      a 12.5k graph from 2.9s down to 200ms. (John Arbash Meinel)
98
 
 
99
 
    * The ``--lsprof-file`` option now generates output for KCacheGrind if
100
 
      the file starts with ``callgrind.out``. This matches the default file
101
 
      filtering done by KCacheGrind's Open Dialog. (Ian Clatworthy)
102
 
 
103
 
    * Fix ``bzr update`` to avoid an unnecessary
104
 
      ``branch.get_master_branch`` call, which avoids 1 extra connection
105
 
      to the remote server. (Partial fix for #128076, John Arbash Meinel)
106
 
      
107
 
 
108
 
  LIBRARY API BREAKS:
109
 
 
110
 
    * Deprecated dictionary ``bzrlib.option.SHORT_OPTIONS`` removed.
111
 
      Options are now required to provide a help string and it must
112
 
      comply with the style guide by being one or more sentences with an
113
 
      initial capital and final period. (Martin Pool)
114
 
 
115
 
    * KnitIndex.get_parents now returns tuples. (Robert Collins)
116
 
 
117
 
    * Ancient unused ``Repository.text_store`` attribute has been removed.
118
 
      (Robert Collins)
119
 
 
120
 
  INTERNALS:
121
 
 
122
 
    * merge now uses ``iter_changes`` to calculate changes, which makes room for
123
 
      future performance increases.  It is also more consistent with other
124
 
      operations that perform comparisons, and reduces reliance on
125
 
      Tree.inventory.  (Aaron Bentley)
126
 
 
127
 
    * Refactoring of transport classes connected to a remote server.
128
 
      ConnectedTransport is a new class that serves as a basis for all
129
 
      transports needing to connect to a remote server.  transport.split_url
130
 
      have been deprecated, use the static method on the object instead. URL
131
 
      tests have been refactored too.
132
 
      (Vincent Ladeuil)
133
 
 
134
 
    * Better connection sharing for ConnectedTransport objects.
135
 
      transport.get_transport() now accepts a 'possible_transports' parameter.
136
 
      If a newly requested transport can share a connection with one of the
137
 
      list, it will.
138
 
      (Vincent Ladeuil)
139
 
 
140
 
    * Most functions now accept ``bzrlib.revision.NULL_REVISION`` to indicate
141
 
      the null revision, and consider using ``None`` for this purpose
142
 
      deprecated.  (Aaron Bentley)
143
 
 
144
 
    * New ``index`` module with abstract index functionality. This will be
145
 
      used during the planned changes in the repository layer. Currently the
146
 
      index layer provides a graph aware immutable index, a builder for the
147
 
      same index type to allow creating them, and finally a composer for
148
 
      such indices to allow the use of many indices in a single query. The
149
 
      index performance is not optimised, however the API is stable to allow
150
 
      development on top of the index. (Robert Collins)
151
 
 
152
 
    * ``bzrlib.dirstate.cmp_by_dirs`` can be used to compare two paths by
153
 
      their directory sections. This is equivalent to comparing
154
 
      ``path.split('/')``, only without having to split the paths.
155
 
      This has a Pyrex implementation available.
156
 
      (John Arbash Meinel)
157
 
 
158
 
    * New transport decorator 'unlistable+' which disables the list_dir
159
 
      functionality for testing.
160
 
 
161
 
    * New ``file_names.FileNames`` support class which mananges names
162
 
      for unlistable transport situations. (Robert Collins)
163
 
 
164
 
    * Deprecated ``change_entry`` in transform.py. (Ian Clatworthy)
165
 
 
166
 
    * RevisionTree.get_weave is now deprecated.  Tree.plan_merge is now used
167
 
      for performing annotate-merge.  (Aaron Bentley)
168
 
 
169
 
    * New EmailMessage class to create email messages. (Adeodato Simó)
170
 
 
171
 
    * Unused functions on the private interface KnitIndex have been removed.
172
 
      (Robert Collins)
173
 
 
174
 
    * New ``knit.KnitGraphIndex`` which provides a ``KnitIndex`` layered on top
175
 
      of a ``index.GraphIndex``. (Robert Collins)
176
 
 
177
 
    * New ``knit.KnitVersionedFile.iter_parents`` method that allows querying
178
 
      the parents of many knit nodes at once, reducing round trips to the 
179
 
      underlying index. (Robert Collins)
180
 
 
181
 
    * Graph now has an is_ancestor method, various bits use it.
182
 
      (Aaron Bentley)
183
 
 
184
 
  TESTING:
185
 
 
186
 
    * Remove selftest ``--clean-output``, ``--numbered-dirs`` and
187
 
      ``--keep-output`` options, which are obsolete now that tests
188
 
      are done within directories in $TMPDIR.  (Martin Pool)
189
 
 
190
 
    * The SSH_AUTH_SOCK environment variable is now reset to avoid 
191
 
      interaction with any running ssh agents.  (Jelmer Vernooij, #125955)
192
 
 
193
 
 
194
 
bzr 0.18  2007-07-17
195
 
 
196
 
  BUGFIXES:
197
 
 
198
 
    * Fix 'bzr add' crash under Win32 (Kuno Meyer)
199
 
 
200
 
 
201
 
bzr 0.18rc1  2007-07-10
202
 
 
203
 
  BUGFIXES:
204
 
 
205
 
    * Do not suppress pipe errors, etc. in non-display commands
206
 
      (Alexander Belchenko, #87178)
207
 
 
208
 
    * Display a useful error message when the user requests to annotate
209
 
      a file that is not present in the specified revision.
210
 
      (James Westby, #122656)
211
 
 
212
 
    * Commands that use status flags now have a reference to 'help
213
 
      status-flags'.  (Daniel Watkins, #113436)
214
 
 
215
 
    * Work around python-2.4.1 inhability to correctly parse the
216
 
      authentication header.
217
 
      (Vincent Ladeuil, #121889)
218
 
 
219
 
    * Use exact encoding for merge directives. (Adeodato Simó, #120591)
220
 
 
221
 
    * Fix tempfile permissions error in smart server tar bundling under
222
 
      Windows. (Martin_, #119330)
223
 
 
224
 
    * Fix detection of directory entries in the inventory. (James Westby)
225
 
 
226
 
    * Fix handling of http code 400: Bad Request When issuing too many ranges.
227
 
      (Vincent Ladeuil, #115209)
228
 
 
229
 
    * Issue a CONNECT request when connecting to an https server
230
 
      via a proxy to enable SSL tunneling.
231
 
     (Vincent Ladeuil, #120678)
232
 
 
233
 
    * Fix ``bzr log -r`` to support selecting merge revisions, both 
234
 
      individually and as part of revision ranges.
235
 
      (Kent Gibson, #4663)
236
 
 
237
 
    * Don't leave cruft behind when failing to acquire a lockdir.
238
 
      (Martin Pool, #109169)
239
 
 
240
 
    * Don't use the '-f' strace option during tests.
241
 
      (Vincent Ladeuil, #102019).
242
 
 
243
 
    * Warn when setting ``push_location`` to a value that will be masked by
244
 
      locations.conf.  (Aaron Bentley, #122286)
245
 
 
246
 
    * Fix commit ordering in corner case (Aaron Bentley, #94975)
247
 
 
248
 
    *  Make annotate behave in a non-ASCII world (Adeodato Simó).
249
 
 
250
 
  IMPROVEMENTS:
251
 
 
252
 
    * The --lsprof-file option now dumps a text rendering of the profiling
253
 
      information if the filename ends in ".txt". It will also convert the
254
 
      profiling information to a format suitable for KCacheGrind if the
255
 
      output filename ends in ".callgrind". Fixes to the lsprofcalltree
256
 
      conversion process by Jean Paul Calderone and Itamar were also merged.
257
 
      See http://ddaa.net/blog/python/lsprof-calltree. (Ian Clatworthy)
258
 
 
259
 
    * ``info`` now defaults to non-verbose mode, displaying only paths and
260
 
      abbreviated format info.  ``info -v`` displays all the information
261
 
      formerly displayed by ``info``.  (Aaron Bentley, Adeodato Simó)
262
 
 
263
 
    * ``bzr missing`` now has better option names ``--this`` and ``--other``.
264
 
      (Elliot Murphy)
265
 
 
266
 
    * The internal ``weave-list`` command has become ``versionedfile-list``,
267
 
      and now lists knits as well as weaves.  (Aaron Bentley)
268
 
 
269
 
    * Automatic merge base selection uses a faster algorithm that chooses
270
 
      better bases in criss-cross merge situations (Aaron Bentley)
271
 
 
272
 
    * Progress reporting in ``commit`` has been improved. The various logical
273
 
      stages are now reported on as follows, namely:
274
 
 
275
 
      * Collecting changes [Entry x/y] - Stage n/m
276
 
      * Saving data locally - Stage n/m
277
 
      * Uploading data to master branch - Stage n/m
278
 
      * Updating the working tree - Stage n/m
279
 
      * Running post commit hooks - Stage n/m
280
 
      
281
 
      If there is no master branch, the 3rd stage is omitted and the total
282
 
      number of stages is adjusted accordingly.
283
 
 
284
 
      Each hook that is run after commit is listed with a name (as hooks
285
 
      can be slow it is useful feedback).
286
 
      (Ian Clatworthy, Robert Collins)
287
 
 
288
 
    * Various operations that are now faster due to avoiding unnecessary
289
 
      topological sorts. (Aaron Bentley)
290
 
 
291
 
    * Make merge directives robust against broken bundles. (Aaron Bentley)
292
 
 
293
 
    * The lsprof filename note is emitted via trace.note(), not standard
294
 
      output.  (Aaron Bentley)
295
 
 
296
 
    * ``bzrlib`` now exports explicit API compatibility information to assist
297
 
      library users and plugins. See the ``bzrlib.api`` module for details.
298
 
      (Robert Collins)
299
 
 
300
 
    * Remove unnecessary lock probes when acquiring a lockdir.
301
 
      (Martin Pool)
302
 
 
303
 
    * ``bzr --version`` now shows the location of the bzr log file, which
304
 
      is especially useful on Windows.  (Martin Pool)
305
 
 
306
 
    * -D now supports hooks to get debug tracing of hooks (though its currently
307
 
      minimal in nature). (Robert Collins)
308
 
 
309
 
    * Long log format reports deltas on merge revisions. 
310
 
      (John Arbash Meinel, Kent Gibson)
311
 
 
312
 
    * Make initial push over ftp more resilient. (John Arbash Meinel)
313
 
 
314
 
    * Print a summary of changes for update just like pull does.
315
 
      (Daniel Watkins, #113990)
316
 
 
317
 
    * Add a -Dhpss option to trace smart protocol requests and responses.
318
 
      (Andrew Bennetts)
319
 
 
320
 
  LIBRARY API BREAKS:
321
 
 
322
 
    * Testing cleanups - 
323
 
     ``bzrlib.repository.RepositoryTestProviderAdapter`` has been moved
324
 
      to ``bzrlib.tests.repository_implementations``;
325
 
      ``bzrlib.repository.InterRepositoryTestProviderAdapter`` has been moved
326
 
      to ``bzrlib.tests.interrepository_implementations``;
327
 
      ``bzrlib.transport.TransportTestProviderAdapter`` has moved to 
328
 
      ``bzrlib.tests.test_transport_implementations``.
329
 
      ``bzrlib.branch.BranchTestProviderAdapter`` has moved to
330
 
      ``bzrlib.tests.branch_implementations``.
331
 
      ``bzrlib.bzrdir.BzrDirTestProviderAdapter`` has moved to 
332
 
      ``bzrlib.tests.bzrdir_implementations``.
333
 
      ``bzrlib.versionedfile.InterVersionedFileTestProviderAdapter`` has moved
334
 
      to ``bzrlib.tests.interversionedfile_implementations``.
335
 
      ``bzrlib.store.revision.RevisionStoreTestProviderAdapter`` has moved to
336
 
      ``bzrlib.tests.revisionstore_implementations``.
337
 
      ``bzrlib.workingtree.WorkingTreeTestProviderAdapter`` has moved to
338
 
      ``bzrlib.tests.workingtree_implementations``.
339
 
      These changes are an API break in the testing infrastructure only.
340
 
      (Robert Collins)
341
 
 
342
 
    * Relocate TestCaseWithRepository to be more central. (Robert Collins)
343
 
 
344
 
    * ``bzrlib.add.smart_add_tree`` will no longer perform glob expansion on
345
 
      win32. Callers of the function should do this and use the new
346
 
      ``MutableTree.smart_add`` method instead. (Robert Collins)
347
 
 
348
 
    * ``bzrlib.add.glob_expand_for_win32`` is now
349
 
      ``bzrlib.win32utils.glob_expand``.  (Robert Collins)
350
 
 
351
 
    * ``bzrlib.add.FastPath`` is now private and moved to 
352
 
      ``bzrlib.mutabletree._FastPath``. (Robert Collins, Martin Pool)
353
 
 
354
 
    * ``LockDir.wait`` removed.  (Martin Pool)
355
 
 
356
 
    * The ``SmartServer`` hooks API has changed for the ``server_started`` and
357
 
      ``server_stopped`` hooks. The first parameter is now an iterable of
358
 
      backing URLs rather than a single URL. This is to reflect that many
359
 
      URLs may map to the external URL of the server. E.g. the server interally
360
 
      may have a chrooted URL but also the local file:// URL will be at the 
361
 
      same location. (Robert Collins)
362
 
 
363
 
  INTERNALS:
364
 
 
365
 
    * New SMTPConnection class to unify email handling.  (Adeodato Simó)
366
 
 
367
 
    * Fix documentation of BzrError. (Adeodato Simó)
368
 
 
369
 
    * Make BzrBadParameter an internal error. (Adeodato Simó)
370
 
 
371
 
    * Remove use of 'assert False' to raise an exception unconditionally.
372
 
      (Martin Pool)
373
 
 
374
 
    * Give a cleaner error when failing to decode knit index entry.
375
 
      (Martin Pool)
376
 
 
377
 
    * TreeConfig would mistakenly search the top level when asked for options
378
 
      from a section. It now respects the section argument and only
379
 
      searches the specified section. (James Westby)
380
 
 
381
 
    * Improve ``make api-docs`` output. (John Arbash Meinel)
382
 
 
383
 
    * Use os.lstat rather than os.stat for osutils.make_readonly and
384
 
      osutils.make_writeable. This makes the difftools plugin more
385
 
      robust when dangling symlinks are found. (Elliot Murphy)
386
 
 
387
 
    * New ``-Dlock`` option to log (to ~/.bzr.log) information on when 
388
 
      lockdirs are taken or released.  (Martin Pool)
389
 
 
390
 
    * ``bzrlib`` Hooks are now nameable using ``Hooks.name_hook``. This 
391
 
      allows a nicer UI when hooks are running as the current hook can
392
 
      be displayed. (Robert Collins)
393
 
 
394
 
    * ``Transport.get`` has had its interface made more clear for ease of use.
395
 
      Retrieval of a directory must now fail with either 'PathError' at open
396
 
      time, or raise 'ReadError' on a read. (Robert Collins)
397
 
 
398
 
    * New method ``_maybe_expand_globs`` on the ``Command`` class for 
399
 
      dealing with unexpanded glob lists - e.g. on the win32 platform. This
400
 
      was moved from ``bzrlib.add._prepare_file_list``. (Robert Collins)
401
 
 
402
 
    * ``bzrlib.add.smart_add`` and ``bzrlib.add.smart_add_tree`` are now
403
 
      deprecated in favour of ``MutableTree.smart_add``. (Robert Collins,
404
 
      Martin Pool)
405
 
 
406
 
    * New method ``external_url`` on Transport for obtaining the url to
407
 
      hand to external processes. (Robert Collins)
408
 
 
409
 
    * Teach windows installers to build pyrex/C extensions.
410
 
      (Alexander Belchenko)
411
 
 
412
 
  TESTING:
413
 
 
414
 
    * Removed the ``--keep-output`` option from selftest and clean up test
415
 
      directories as they're used.  This reduces the IO load from 
416
 
      running the test suite and cuts the time by about half.
417
 
      (Andrew Bennetts, Martin Pool)
418
 
 
419
 
    * Add scenarios as a public attribute on the TestAdapter classes to allow
420
 
      modification of the generated scenarios before adaption and easier
421
 
      testing. (Robert Collins)
422
 
 
423
 
    * New testing support class ``TestScenarioApplier`` which multiplies
424
 
      out a single teste by a list of supplied scenarios. (RobertCollins)
425
 
 
426
 
    * Setting ``repository_to_test_repository`` on a repository_implementations
427
 
      test will cause it to be called during repository creation, allowing the
428
 
      testing of repository classes which are not based around the Format
429
 
      concept. For example a repository adapter can be tested in this manner,
430
 
      by altering the repository scenarios to include a scenario that sets this
431
 
      attribute during the test parameterisation in
432
 
      ``bzrlib.tests.repository.repository_implementations``. (Robert Collins)
433
 
 
434
 
    * Clean up many of the APIs for blackbox testing of Bazaar.  The standard 
435
 
      interface is now self.run_bzr.  The command to run can be passed as
436
 
      either a list of parameters, a string containing the command line, or
437
 
      (deprecated) varargs parameters.  (Martin Pool)
438
 
 
439
 
    * The base TestCase now isolates tests from -D parameters by clearing
440
 
      ``debug.debug_flags`` and restores it afterwards. (Robert Collins)
441
 
 
442
 
    * Add a relpath parameter to get_transport methods in test framework to
443
 
      avoid useless cloning.
444
 
      (Vincent Ladeuil, #110448)
445
 
 
446
 
 
447
 
bzr 0.17  2007-06-18
448
 
 
449
 
  BUGFIXES:
450
 
 
451
 
    * Fix crash of commit due to wrong lookup of filesystem encoding.
452
 
      (Colin Watson, #120647)
453
 
 
454
 
    * Revert logging just to stderr in commit as broke unicode filenames.
455
 
      (Aaron Bentley, Ian Clatworthy, #120930)
456
 
 
457
 
 
458
 
bzr 0.17rc1  2007-06-12
459
 
 
460
 
  NOTES WHEN UPGRADING:
461
 
 
462
 
    * The kind() and is_executable() APIs on the WorkingTree interface no
463
 
      longer implicitly (read) locks and unlocks the tree. This *might*
464
 
      impact some plug-ins and tools using this part of the API. If you find
465
 
      an issue that may be caused by this change, please let us know,
466
 
      particularly the plug-in/tool maintainer. If encountered, the API
467
 
      fix is to surround kind() and is_executable() calls with lock_read()
468
 
      and unlock() like so::
469
 
 
470
 
        work_tree.lock_read()
471
 
        try:
472
 
            kind = work_tree.kind(...)
473
 
        finally:
474
 
            work_tree.unlock()
475
 
 
476
 
  INTERNALS:
477
 
    * Rework of LogFormatter API to provide beginning/end of log hooks and to
478
 
      encapsulate the details of the revision to be logged in a LogRevision
479
 
      object.
480
 
      In long log formats, merge revision ids are only shown when --show-ids
481
 
      is specified, and are labelled "revision-id:", as per mainline
482
 
      revisions, instead of "merged:". (Kent Gibson)
483
 
 
484
 
    * New ``BranchBuilder`` API which allows the construction of particular
485
 
      histories quickly. Useful for testing and potentially other applications
486
 
      too. (Robert Collins)
487
 
 
488
 
  IMPROVEMENTS:
489
 
  
490
 
    * There are two new help topics, working-trees and repositories that
491
 
      attempt to explain these concepts. (James Westby, John Arbash Meinel,
492
 
      Aaron Bentley)
493
 
 
494
 
    * Added ``bzr log --limit`` to report a limited number of revisions.
495
 
      (Kent Gibson, #3659)
496
 
 
497
 
    * Revert does not try to preserve file contents that were originally
498
 
      produced by reverting to a historical revision.  (Aaron Bentley)
499
 
 
500
 
    * ``bzr log --short`` now includes ``[merge]`` for revisions which
501
 
      have more than one parent. This is a small improvement to help
502
 
      understanding what changes have occurred
503
 
      (John Arbash Meinel, #83887)
504
 
 
505
 
    * TreeTransform avoids many renames when contructing large trees,
506
 
      improving speed.  3.25x speedups have been observed for construction of
507
 
      kernel-sized-trees, and checkouts are 1.28x faster.  (Aaron Bentley)
508
 
 
509
 
    * Commit on large trees is now faster. In my environment, a commit of
510
 
      a small change to the Mozilla tree (55k files) has dropped from
511
 
      66 seconds to 32 seconds. For a small tree of 600 files, commit of a
512
 
      small change is 33% faster. (Ian Clatworthy)
513
 
 
514
 
    * New --create-prefix option to bzr init, like for push.  (Daniel Watkins,
515
 
      #56322)
516
 
 
517
 
  BUGFIXES:
518
 
 
519
 
    * ``bzr push`` should only connect to the remote location one time.
520
 
      We have been connecting 3 times because we forget to pass around
521
 
      the Transport object. This adds ``BzrDir.clone_on_transport()``, so
522
 
      that we can pass in the Transport that we already have.
523
 
      (John Arbash Meinel, #75721)
524
 
 
525
 
    * ``DirState.set_state_from_inventory()`` needs to properly order
526
 
      based on split paths, not just string paths.
527
 
      (John Arbash Meinel, #115947)
528
 
 
529
 
    * Let TestUIFactoy encode the password prompt with its own stdout.
530
 
      (Vincent Ladeuil, #110204)
531
 
 
532
 
    * pycurl should take use the range header that takes the range hint
533
 
      into account.
534
 
      (Vincent Ladeuil, #112719)
535
 
 
536
 
    * WorkingTree4.get_file_sha1 no longer raises an exception when invoked
537
 
      on a missing file.  (Aaron Bentley, #118186)
538
 
 
539
 
    * WorkingTree.remove works correctly with tree references, and when pwd is
540
 
      not the tree root. (Aaron Bentley)
541
 
 
542
 
    * Merge no longer fails when a file is renamed in one tree and deleted
543
 
      in the other. (Aaron Bentley, #110279)
544
 
 
545
 
    * ``revision-info`` now accepts dotted revnos, doesn't require a tree,
546
 
      and defaults to the last revision (Matthew Fuller, #90048)
547
 
 
548
 
    * Tests no longer fail when BZR_REMOTE_PATH is set in the environment.
549
 
      (Daniel Watkins, #111958)
550
 
 
551
 
    * ``bzr branch -r revid:foo`` can be used to branch any revision in
552
 
      your repository. (Previously Branch6 only supported revisions in your
553
 
      mainline). (John Arbash Meinel, #115343)
554
 
 
555
 
bzr 0.16  2007-05-07
556
 
  
557
 
  BUGFIXES:
558
 
 
559
 
    * Handle when you have 2 directories with similar names, but one has a
560
 
      hyphen. (``'abc'`` versus ``'abc-2'``). The WT4._iter_changes
561
 
      iterator was using direct comparison and ``'abc/a'`` sorts after
562
 
      ``'abc-2'``, but ``('abc', 'a')`` sorts before ``('abc-2',)``.
563
 
      (John Arbash Meinel, #111227)
564
 
 
565
 
    * Handle when someone renames a file on disk without telling bzr.
566
 
      Previously we would report the first file as missing, but not show
567
 
      the new unknown file. (John Arbash Meinel, #111288)
568
 
 
569
 
    * Avoid error when running hooks after pulling into or pushing from
570
 
      a branch bound to a smartserver branch.  (Martin Pool, #111968)
571
 
 
572
 
  IMPROVEMENTS:
573
 
 
574
 
    * Move developer documentation to doc/developers/. This reduces clutter in
575
 
      the root of the source tree and allows HACKING to be split into multiple
576
 
      files. (Robert Collins, Alexander Belchenko)
577
 
 
578
 
    * Clean up the ``WorkingTree4._iter_changes()`` internal loops as well as
579
 
      ``DirState.update_entry()``. This optimizes the core logic for ``bzr
580
 
      diff`` and ``bzr status`` significantly improving the speed of
581
 
      both. (John Arbash Meinel)
582
 
 
583
 
bzr 0.16rc2  2007-04-30
584
 
 
585
 
  BUGFIXES:
586
 
 
587
 
    * Handle the case when you delete a file, and then rename another file
588
 
      on top of it. Also handle the case of ``bzr rm --keep foo``. ``bzr
589
 
      status`` should show the removed file and an unknown file in its
590
 
      place. (John Arbash Meinel, #109993)
591
 
 
592
 
    * Bundles properly read and write revision properties that have an
593
 
      empty value. And when the value is not ASCII.
594
 
      (John Arbash Meinel, #109613)
595
 
 
596
 
    * Fix the bzr commit message to be in text mode.
597
 
      (Alexander Belchenko, #110901)
598
 
 
599
 
    * Also handle when you rename a file and create a file where it used
600
 
      to be. (John Arbash Meinel, #110256)
601
 
 
602
 
    * ``WorkingTree4._iter_changes`` should not descend into unversioned
603
 
      directories. (John Arbash Meinel, #110399)
604
 
 
605
 
bzr 0.16rc1  2007-04-26
606
 
 
607
 
  NOTES WHEN UPGRADING:
608
 
 
609
 
    * ``bzr remove`` and ``bzr rm`` will now remove the working file, if
610
 
      it could be recovered again.
611
 
      This has been done for consistency with svn and the unix rm command.
612
 
      The old ``remove`` behaviour has been retained in the new option
613
 
      ``bzr remove --keep``, which will just stop versioning the file,
614
 
      but not delete it.
615
 
      ``bzr remove --force`` have been added which will always delete the
616
 
      files.
617
 
      ``bzr remove`` is also more verbose.
618
 
      (Marius Kruger, #82602)
619
 
 
620
 
  IMPROVEMENTS:
621
 
 
622
 
    * Merge directives can now be supplied as input to `merge` and `pull`,
623
 
      like bundles can.  (Aaron Bentley)
624
 
 
625
 
    * Sending the SIGQUIT signal to bzr, which can be done on Unix by
626
 
      pressing Control-Backslash, drops bzr into a debugger.  Type ``'c'``
627
 
      to continue.  This can be disabled by setting the environment variable
628
 
      ``BZR_SIGQUIT_PDB=0``.  (Martin Pool)
629
 
 
630
 
    * selftest now supports --list-only to list tests instead of running
631
 
      them. (Ian Clatworthy)
632
 
 
633
 
    * selftest now supports --exclude PATTERN (or -x PATTERN) to exclude
634
 
      tests with names that match that regular expression.
635
 
      (Ian Clatworthy, #102679)
636
 
 
637
 
    * selftest now supports --randomize SEED to run tests in a random order.
638
 
      SEED is typically the value 'now' meaning 'use the current time'.
639
 
      (Ian Clatworthy, #102686)
640
 
 
641
 
    * New option ``--fixes`` to commit, which stores bug fixing annotations as
642
 
      revision properties. Built-in support for Launchpad, Debian, Trac and
643
 
      Bugzilla bug trackers. (Jonathan Lange, James Henstridge, Robert Collins)
644
 
 
645
 
    * New API, ``bzrlib.bugtracker.tracker_registry``, for adding support for
646
 
      other bug trackers to ``fixes``. (Jonathan Lange, James Henstridge,
647
 
      Robert Collins)
648
 
 
649
 
    * ``selftest`` has new short options ``-f`` and ``-1``.  (Martin
650
 
      Pool)
651
 
 
652
 
    * ``bzrlib.tsort.MergeSorter`` optimizations. Change the inner loop
653
 
      into using local variables instead of going through ``self._var``.
654
 
      Improves the time to ``merge_sort`` a 10k revision graph by
655
 
      approximately 40% (~700->400ms).  (John Arbash Meinel)
656
 
 
657
 
    * ``make docs`` now creates a man page at ``man1/bzr.1`` fixing bug 107388.
658
 
      (Robert Collins)
659
 
 
660
 
    * ``bzr help`` now provides cross references to other help topics using
661
 
      the _see_also facility on command classes. Likewise the bzr_man
662
 
      documentation, and the bzr.1 man page also include this information.
663
 
      (Robert Collins)
664
 
 
665
 
    * Tags are now included in logs, that use the long log formatter. 
666
 
      (Erik Bågfors, Alexander Belchenko)
667
 
 
668
 
    * ``bzr help`` provides a clearer message when a help topic cannot be
669
 
      found. (Robert Collins, #107656)
670
 
 
671
 
    * ``bzr help`` now accepts optional prefixes for command help. The help
672
 
      for all commands can now be found at ``bzr help commands/COMMANDNAME``
673
 
      as well as ``bzr help COMMANDNAME`` (which only works for commands 
674
 
      where the name is not the same as a more general help topic). 
675
 
      (Robert Collins)
676
 
 
677
 
    * ``bzr help PLUGINNAME`` will now return the module docstring from the
678
 
      plugin PLUGINNAME. (Robert Collins, #50408)
679
 
 
680
 
    * New help topic ``urlspec`` which lists the availables transports.
681
 
      (Goffredo Baroncelli)
682
 
 
683
 
    * doc/server.txt updated to document the default bzr:// port
684
 
      and also update the blurb about the hpss' current status.
685
 
      (Robert Collins, #107125).
686
 
 
687
 
    * ``bzr serve`` now listens on interface 0.0.0.0 by default, making it
688
 
      serve out to the local LAN (and anyone in the world that can reach the
689
 
      machine running ``bzr serve``. (Robert Collins, #98918)
690
 
 
691
 
    * A new smart server protocol version has been added.  It prefixes requests
692
 
      and responses with an explicit version identifier so that future protocol
693
 
      revisions can be dealt with gracefully.  (Andrew Bennetts, Robert Collins)
694
 
 
695
 
    * The bzr protocol version 2 indicates success or failure in every response
696
 
      without depending on particular commands encoding that consistently,
697
 
      allowing future client refactorings to be much more robust about error
698
 
      handling. (Robert Collins, Martin Pool, Andrew Bennetts)
699
 
 
700
 
    * The smart protocol over HTTP client has been changed to always post to the
701
 
      same ``.bzr/smart`` URL under the original location when it can.  This allows
702
 
      HTTP servers to only have to pass URLs ending in .bzr/smart to the smart
703
 
      server handler, and not arbitrary ``.bzr/*/smart`` URLs.  (Andrew Bennetts)
704
 
 
705
 
    * digest authentication is now supported for proxies and HTTP by the urllib
706
 
      based http implementation. Tested against Apache 2.0.55 and Squid
707
 
      2.6.5. Basic and digest authentication are handled coherently for HTTP
708
 
      and proxy: if the user is provided in the url (bzr command line for HTTP,
709
 
      proxy environment variables for proxies), the password is prompted for
710
 
      (only once). If the password is provided, it is taken into account. Once
711
 
      the first authentication is successful, all further authentication
712
 
      roundtrips are avoided by preventively setting the right authentication
713
 
      header(s).
714
 
      (Vincent Ladeuil).
715
 
 
716
 
  INTERNALS:
717
 
 
718
 
    * bzrlib API compatability with 0.8 has been dropped, cleaning up some
719
 
      code paths. (Robert Collins)
720
 
 
721
 
    * Change the format of chroot urls so that they can be safely manipulated
722
 
      by generic url utilities without causing the resulting urls to have
723
 
      escaped the chroot. A side effect of this is that creating a chroot
724
 
      requires an explicit action using a ChrootServer.
725
 
      (Robert Collins, Andrew Bennetts)
726
 
 
727
 
    * Deprecate ``Branch.get_root_id()`` because branches don't have root ids,
728
 
      rather than fixing bug #96847.  (Aaron Bentley)
729
 
 
730
 
    * ``WorkingTree.apply_inventory_delta`` provides a better alternative to
731
 
      ``WorkingTree._write_inventory``.  (Aaron Bentley)
732
 
 
733
 
    * Convenience method ``TestCase.expectFailure`` ensures that known failures
734
 
      do not silently pass.  (Aaron Bentley)
735
 
 
736
 
    * ``Transport.local_abspath`` now raises ``NotLocalUrl`` rather than 
737
 
      ``TransportNotPossible``. (Martin Pool, Ian Clatworthy)
738
 
 
739
 
    * New SmartServer hooks facility. There are two initial hooks documented
740
 
      in ``bzrlib.transport.smart.SmartServerHooks``. The two initial hooks allow
741
 
      plugins to execute code upon server startup and shutdown.
742
 
      (Robert Collins).
743
 
 
744
 
    * SmartServer in standalone mode will now close its listening socket
745
 
      when it stops, rather than waiting for garbage collection. This primarily
746
 
      fixes test suite hangs when a test tries to connect to a shutdown server.
747
 
      It may also help improve behaviour when dealing with a server running
748
 
      on a specific port (rather than dynamically assigned ports).
749
 
      (Robert Collins)
750
 
 
751
 
    * Move most SmartServer code into a new package, bzrlib/smart.
752
 
      bzrlib/transport/remote.py contains just the Transport classes that used
753
 
      to be in bzrlib/transport/smart.py.  (Andrew Bennetts)
754
 
 
755
 
    * urllib http implementation avoid roundtrips associated with
756
 
      401 (and 407) errors once the authentication succeeds.
757
 
      (Vincent Ladeuil).
758
 
 
759
 
    * urlib http now supports querying the user for a proxy password if
760
 
      needed. Realm is shown in the prompt for both HTTP and proxy
761
 
      authentication when the user is required to type a password. 
762
 
      (Vincent Ladeuil).
763
 
 
764
 
    * Renamed SmartTransport (and subclasses like SmartTCPTransport) to
765
 
      RemoteTransport (and subclasses to RemoteTCPTransport, etc).  This is more
766
 
      consistent with its new home in ``bzrlib/transport/remote.py``, and because
767
 
      it's not really a "smart" transport, just one that does file operations
768
 
      via remote procedure calls.  (Andrew Bennetts)
769
 
 
770
 
    * The ``lock_write`` method of ``LockableFiles``, ``Repository`` and
771
 
      ``Branch`` now accept a ``token`` keyword argument, so that separate
772
 
      instances of those objects can share a lock if it has the right token.
773
 
      (Andrew Bennetts, Robert Collins)
774
 
 
775
 
    * New method ``get_branch_reference`` on ``BzrDir`` allows the detection of
776
 
      branch references - which the smart server component needs.
777
 
 
778
 
    * The Repository API ``make_working_trees`` is now permitted to return
779
 
      False when ``set_make_working_trees`` is not implemented - previously
780
 
      an unimplemented ``set_make_working_trees`` implied the result True
781
 
      from ``make_working_trees``. This has been changed to accomodate the
782
 
      smart server, where it does not make sense (at this point) to ever
783
 
      make working trees by default. (Robert Collins)
784
 
 
785
 
    * Command objects can now declare related help topics by having _see_also
786
 
      set to a list of related topic. (Robert Collins)
787
 
 
788
 
    * ``bzrlib.help`` now delegates to the Command class for Command specific
789
 
      help. (Robert Collins)
790
 
 
791
 
    * New class ``TransportListRegistry``, derived from the Registry class, which 
792
 
      simplifies tracking the available Transports. (Goffredo Baroncelli)
793
 
 
794
 
    * New function ``Branch.get_revision_id_to_revno_map`` which will
795
 
      return a dictionary mapping revision ids to dotted revnos. Since
796
 
      dotted revnos are defined in the context of the branch tip, it makes
797
 
      sense to generate them from a ``Branch`` object.
798
 
      (John Arbash Meinel)
799
 
 
800
 
    * Fix the 'Unprintable error' message display to use the repr of the 
801
 
      exception that prevented printing the error because the str value
802
 
      for it is often not useful in debugging (e.g. KeyError('foo') has a
803
 
      str() of 'foo' but a repr of 'KeyError('foo')' which is much more
804
 
      useful. (Robert Collins)
805
 
 
806
 
    * ``urlutils.normalize_url`` now unescapes unreserved characters, such as "~".
807
 
      (Andrew Bennetts)
808
 
 
809
 
  BUGFIXES:
810
 
 
811
 
    * Don't fail bundle selftest if email has 'two' embedded.  
812
 
      (Ian Clatworthy, #98510)
813
 
 
814
 
    * Remove ``--verbose`` from ``bzr bundle``. It didn't work anyway.
815
 
      (Robert Widhopf-Fenk, #98591)
816
 
 
817
 
    * Remove ``--basis`` from the checkout/branch commands - it didn't work
818
 
      properly and is no longer beneficial.
819
 
      (Robert Collins, #53675, #43486)
820
 
 
821
 
    * Don't produce encoding error when adding duplicate files.
822
 
      (Aaron Bentley)
823
 
 
824
 
    * Fix ``bzr log <file>`` so it only logs the revisions that changed
825
 
      the file, and does it faster.
826
 
      (Kent Gibson, John Arbash Meinel, #51980, #69477)
827
 
 
828
 
    * Fix ``InterDirstateTre._iter_changes`` to handle when we come across
829
 
      an empty versioned directory, which now has files in it.
830
 
      (John Arbash Meinel, #104257)
831
 
 
832
 
    * Teach ``common_ancestor`` to shortcut when the tip of one branch is
833
 
      inside the ancestry of the other. Saves a lot of graph processing
834
 
      (with an ancestry of 16k revisions, ``bzr merge ../already-merged``
835
 
      changes from 2m10s to 13s).  (John Arbash Meinel, #103757)
836
 
 
837
 
    * Fix ``show_diff_trees`` to handle the case when a file is modified,
838
 
      and the containing directory is renamed. (The file path is different
839
 
      in this versus base, but it isn't marked as a rename).
840
 
      (John Arbash Meinel, #103870)
841
 
 
842
 
    * FTP now works even when the FTP server does not support atomic rename.
843
 
      (Aaron Bentley, #89436)
844
 
 
845
 
    * Correct handling in bundles and merge directives of timezones with
846
 
      that are not an integer number of hours offset from UTC.  Always 
847
 
      represent the epoch time in UTC to avoid problems with formatting 
848
 
      earlier times on win32.  (Martin Pool, Alexander Belchenko, John
849
 
      Arbash Meinel)
850
 
 
851
 
    * Typo in the help for ``register-branch`` fixed. (Robert Collins, #96770)
852
 
 
853
 
    * "dirstate" and "dirstate-tags" formats now produce branches compatible
854
 
      with old versions of bzr. (Aaron Bentley, #107168))
855
 
 
856
 
    * Handle moving a directory when children have been added, removed,
857
 
      and renamed. (John Arbash Meinel, #105479)
858
 
 
859
 
    * Don't preventively use basic authentication for proxy before receiving a
860
 
      407 error. Otherwise people willing to use other authentication schemes
861
 
      may expose their password in the clear (or nearly). This add one
862
 
      roundtrip in case basic authentication should be used, but plug the
863
 
      security hole.
864
 
      (Vincent Ladeuil)
865
 
 
866
 
    * Handle http and proxy digest authentication.
867
 
      (Vincent Ladeuil, #94034).
868
 
 
869
 
  TESTING:
870
 
 
871
 
    * Added ``bzrlib.strace.strace`` which will strace a single callable and
872
 
      return a StraceResult object which contains just the syscalls involved
873
 
      in running it. (Robert Collins)
874
 
 
875
 
    * New test method ``reduceLockdirTimeout`` to drop the default (ui-centric)
876
 
      default time down to one suitable for tests. (Andrew Bennetts)
877
 
 
878
 
    * Add new ``vfs_transport_factory`` attribute on tests which provides the 
879
 
      common vfs backing for both the readonly and readwrite transports.
880
 
      This allows the RemoteObject tests to back onto local disk or memory,
881
 
      and use the existing ``transport_server`` attribute all tests know about
882
 
      to be the smart server transport. This in turn allows tests to 
883
 
      differentiate between 'transport to access the branch', and 
884
 
      'transport which is a VFS' - which matters in Remote* tests.
885
 
      (Robert Collins, Andrew Bennetts)
886
 
 
887
 
    * The ``make_branch_and_tree`` method for tests will now create a 
888
 
      lightweight checkout for the tree if the ``vfs_transport_factory`` is not
889
 
      a LocalURLServer. (Robert Collins, Andrew Bennetts)
890
 
 
891
 
    * Branch implementation tests have been audited to ensure that all urls 
892
 
      passed to Branch APIs use proper urls, except when local-disk paths
893
 
      are intended. This is so that tests correctly access the test transport
894
 
      which is often not equivalent to local disk in Remote* tests. As part
895
 
      of this many tests were adjusted to remove dependencies on local disk
896
 
      access.
897
 
      (Robert Collins, Andrew Bennetts)
898
 
 
899
 
    * Mark bzrlib.tests and bzrlib.tests.TestUtil as providing assertFOO helper
900
 
      functions by adding a ``__unittest`` global attribute. (Robert Collins,
901
 
      Andrew Bennetts, Martin Pool, Jonathan Lange)
902
 
 
903
 
    * Refactored proxy and authentication handling to simplify the
904
 
      implementation of new auth schemes for both http and proxy. 
905
 
      (Vincent Ladeuil)
906
 
 
907
 
bzr 0.15 2007-04-01
908
 
 
909
 
  BUGFIXES:
910
 
 
911
 
    * Handle incompatible repositories as a user issue when fetching.
912
 
      (Aaron Bentley)
913
 
 
914
 
    * Don't give a recommendation to upgrade when branching or 
915
 
      checking out a branch that contains an old-format working tree.
916
 
      (Martin Pool)
917
 
 
918
 
bzr 0.15rc3  2007-03-26
919
 
 
920
 
  CHANGES:
921
 
 
922
 
    * A warning is now displayed when opening working trees in older 
923
 
      formats, to encourage people to upgrade to WorkingTreeFormat4.
924
 
      (Martin Pool)
925
 
 
926
 
  IMPROVEMENTS:
927
 
 
928
 
    * HTTP redirections are now taken into account when a branch (or a
929
 
      bundle) is accessed for the first time. A message is issued at each
930
 
      redirection to inform the user. In the past, http redirections were
931
 
      silently followed for each request which significantly degraded the
932
 
      performances. The http redirections are not followed anymore by
933
 
      default, instead a RedirectRequested exception is raised. For bzrlib
934
 
      users needing to follow http redirections anyway,
935
 
      ``bzrlib.transport.do_catching_redirections`` provide an easy transition
936
 
      path.  (vila)
937
 
 
938
 
  INTERNALS:
939
 
 
940
 
    * Added ``ReadLock.temporary_write_lock()`` to allow upgrading an OS read
941
 
      lock to an OS write lock. Linux can do this without unlocking, Win32
942
 
      needs to unlock in between. (John Arbash Meinel)
943
 
 
944
 
    * New parameter ``recommend_upgrade`` to ``BzrDir.open_workingtree``
945
 
      to silence (when false) warnings about opening old formats.
946
 
      (Martin Pool)
947
 
 
948
 
    * Fix minor performance regression with bzr-0.15 on pre-dirstate
949
 
      trees. (We were reading the working inventory too many times).
950
 
      (John Arbash Meinel)
951
 
 
952
 
    * Remove ``Branch.get_transaction()`` in favour of a simple cache of
953
 
      ``revision_history``.  Branch subclasses should override
954
 
      ``_gen_revision_history`` rather than ``revision_history`` to make use of
955
 
      this cache, and call ``_clear_revision_history_cache`` and
956
 
      ``_cache_revision_history`` at appropriate times. (Andrew Bennetts)
957
 
 
958
 
  BUGFIXES:
959
 
 
960
 
    * Take ``smtp_server`` from user config into account.
961
 
      (vila, #92195)
962
 
 
963
 
    * Restore Unicode filename handling for versioned and unversioned files.
964
 
      (John Arbash Meinel, #92608)
965
 
 
966
 
    * Don't fail during ``bzr commit`` if a file is marked removed, and
967
 
      the containing directory is auto-removed.  (John Arbash Meinel, #93681)
968
 
 
969
 
    * ``bzr status FILENAME`` failed on Windows because of an uncommon
970
 
      errno. (``ERROR_DIRECTORY == 267 != ENOTDIR``).
971
 
      (Wouter van Heyst, John Arbash Meinel, #90819)
972
 
 
973
 
    * ``bzr checkout source`` should create a local branch in the same
974
 
      format as source. (John Arbash Meinel, #93854)
975
 
 
976
 
    * ``bzr commit`` with a kind change was failing to update the
977
 
      last-changed-revision for directories.  The
978
 
      InventoryDirectory._unchanged only looked at the ``parent_id`` and name,
979
 
      ignoring the fact that the kind could have changed, too.
980
 
      (John Arbash Meinel, #90111)
981
 
 
982
 
    * ``bzr mv dir/subdir other`` was incorrectly updating files inside
983
 
      the directory. So that there was a chance it would break commit,
984
 
      etc. (John Arbash Meinel, #94037)
985
 
 
986
 
    * Correctly handles mutiple permanent http redirections.
987
 
      (vila, #88780)
988
 
 
989
 
bzr 0.15rc2  2007-03-14
990
 
 
991
 
  NOTES WHEN UPGRADING:
992
 
        
993
 
    * Release 0.15rc2 of bzr changes the ``bzr init-repo`` command to
994
 
      default to ``--trees`` instead of ``--no-trees``.
995
 
      Existing shared repositories are not affected.
996
 
 
997
 
  IMPROVEMENTS:
998
 
 
999
 
    * New ``merge-directive`` command to generate machine- and human-readable
1000
 
      merge requests.  (Aaron Bentley)
1001
 
 
1002
 
    * New ``submit:`` revision specifier makes it easy to diff against the
1003
 
      common ancestor with the submit location (Aaron Bentley)
1004
 
 
1005
 
    * Added support for Putty's SSH implementation. (Dmitry Vasiliev)
1006
 
 
1007
 
    * Added ``bzr status --versioned`` to report only versioned files, 
1008
 
      not unknowns. (Kent Gibson)
1009
 
 
1010
 
    * Merge now autodetects the correct line-ending style for its conflict
1011
 
      markers.  (Aaron Bentley)
1012
 
 
1013
 
  INTERNALS:
1014
 
 
1015
 
    * Refactored SSH vendor registration into SSHVendorManager class.
1016
 
      (Dmitry Vasiliev)
1017
 
 
1018
 
  BUGFIXES:
1019
 
 
1020
 
    * New ``--numbered-dirs`` option to ``bzr selftest`` to use
1021
 
      numbered dirs for TestCaseInTempDir. This is default behavior
1022
 
      on Windows. Anyone can force named dirs on Windows
1023
 
      with ``--no-numbered-dirs``. (Alexander Belchenko)
1024
 
 
1025
 
    * Fix ``RevisionSpec_revid`` to handle the Unicode strings passed in
1026
 
      from the command line. (Marien Zwart, #90501)
1027
 
 
1028
 
    * Fix ``TreeTransform._iter_changes`` when both the source and
1029
 
      destination are missing. (Aaron Bentley, #88842)
1030
 
 
1031
 
    * Fix commit of merges with symlinks in dirstate trees.
1032
 
      (Marien Zwart)
1033
 
    
1034
 
    * Switch the ``bzr init-repo`` default from --no-trees to --trees. 
1035
 
      (Wouter van Heyst, #53483)
1036
 
 
1037
 
 
1038
 
bzr 0.15rc1  2007-03-07
1039
 
 
1040
 
  SURPRISES:
1041
 
 
1042
 
    * The default disk format has changed. Please run 'bzr upgrade' in your
1043
 
      working trees to upgrade. This new default is compatible for network
1044
 
      operations, but not for local operations. That is, if you have two
1045
 
      versions of bzr installed locally, after upgrading you can only use the
1046
 
      bzr 0.15 version. This new default does not enable tags or nested-trees
1047
 
      as they are incompatible with bzr versions before 0.15 over the network.
1048
 
 
1049
 
    * For users of bzrlib: Two major changes have been made to the working tree
1050
 
      api in bzrlib. The first is that many methods and attributes, including
1051
 
      the inventory attribute, are no longer valid for use until one of
1052
 
      ``lock_read``/``lock_write``/``lock_tree_write`` has been called,
1053
 
      and become invalid again after unlock is called. This has been done
1054
 
      to improve performance and correctness as part of the dirstate
1055
 
      development.
1056
 
      (Robert Collins, John A Meinel, Martin Pool, and others).
1057
 
 
1058
 
    * For users of bzrlib: The attribute 'tree.inventory' should be considered
1059
 
      readonly. Previously it was possible to directly alter this attribute, or
1060
 
      its contents, and have the tree notice this. This has been made
1061
 
      unsupported - it may work in some tree formats, but in the newer dirstate
1062
 
      format such actions will have no effect and will be ignored, or even
1063
 
      cause assertions. All operations possible can still be carried out by a
1064
 
      combination of the tree API, and the bzrlib.transform API. (Robert
1065
 
      Collins, John A Meinel, Martin Pool, and others).
1066
 
 
1067
 
  IMPROVEMENTS:
1068
 
 
1069
 
    * Support for OS Windows 98. Also .bzr.log on any windows system
1070
 
      saved in My Documents folder. (Alexander Belchenko)
1071
 
 
1072
 
    * ``bzr mv`` enhanced to support already moved files.
1073
 
      In the past the mv command would have failed if the source file doesn't
1074
 
      exist. In this situation ``bzr mv`` would now detect that the file has
1075
 
      already moved and update the repository accordingly, if the target file
1076
 
      does exist.
1077
 
      A new option ``--after`` has been added so that if two files already
1078
 
      exist, you could notify Bazaar that you have moved a (versioned) file
1079
 
      and replaced it with another. Thus in this case ``bzr move --after``
1080
 
      will only update the Bazaar identifier.
1081
 
      (Steffen Eichenberg, Marius Kruger)
1082
 
 
1083
 
    * ``ls`` now works on treeless branches and remote branches.
1084
 
      (Aaron Bentley)
1085
 
 
1086
 
    * ``bzr help global-options`` describes the global options.
1087
 
      (Aaron Bentley)
1088
 
 
1089
 
    * ``bzr pull --overwrite`` will now correctly overwrite checkouts.
1090
 
      (Robert Collins)
1091
 
 
1092
 
    * Files are now allowed to change kind (e.g. from file to symlink).
1093
 
      Supported by ``commit``, ``revert`` and ``status``
1094
 
      (Aaron Bentley)
1095
 
 
1096
 
    * ``inventory`` and ``unknowns`` hidden in favour of ``ls``
1097
 
      (Aaron Bentley)
1098
 
 
1099
 
    * ``bzr help checkouts`` descibes what checkouts are and some possible
1100
 
      uses of them. (James Westby, Aaron Bentley)
1101
 
 
1102
 
    * A new ``-d`` option to push, pull and merge overrides the default 
1103
 
      directory.  (Martin Pool)
1104
 
 
1105
 
    * Branch format 6: smaller, and potentially faster than format 5.  Supports
1106
 
      ``append_history_only`` mode, where the log view and revnos do not change,
1107
 
      except by being added to.  Stores policy settings in
1108
 
      ".bzr/branch/branch.conf".
1109
 
 
1110
 
    * ``append_only`` branches:  Format 6 branches may be configured so that log
1111
 
      view and revnos are always consistent.  Either create the branch using
1112
 
      "bzr init --append-revisions-only" or edit the config file as descriped
1113
 
      in docs/configuration.txt.
1114
 
 
1115
 
    * rebind: Format 6 branches retain the last-used bind location, so if you
1116
 
      "bzr unbind", you can "bzr bind" to bind to the previously-selected
1117
 
      bind location.
1118
 
 
1119
 
    * Builtin tags support, created and deleted by the ``tag`` command and
1120
 
      stored in the branch.  Tags can be accessed with the revisionspec
1121
 
      ``-rtag:``, and listed with ``bzr tags``.  Tags are not versioned 
1122
 
      at present. Tags require a network incompatible upgrade. To perform this
1123
 
      upgrade, run ``bzr upgrade --dirstate-tags`` in your branch and
1124
 
      repositories. (Martin Pool)
1125
 
 
1126
 
    * The ``bzr://`` transport now has a well-known port number, 4155,
1127
 
      which it will use by default.  (Andrew Bennetts, Martin Pool)
1128
 
 
1129
 
    * Bazaar now looks for user-installed plugins before looking for site-wide
1130
 
      plugins. (Jonathan Lange)
1131
 
 
1132
 
    * ``bzr resolve`` now detects and marks resolved text conflicts.
1133
 
      (Aaron Bentley)
1134
 
 
1135
 
  INTERNALS:
1136
 
 
1137
 
    * Internally revision ids and file ids are now passed around as utf-8
1138
 
      bytestrings, rather than treating them as Unicode strings. This has
1139
 
      performance benefits for Knits, since we no longer need to decode the
1140
 
      revision id for each line of content, nor for each entry in the index.
1141
 
      This will also help with the future dirstate format.
1142
 
      (John Arbash Meinel)
1143
 
 
1144
 
    * Reserved ids (any revision-id ending in a colon) are rejected by
1145
 
      versionedfiles, repositories, branches, and working trees
1146
 
      (Aaron Bentley)
1147
 
 
1148
 
    * Minor performance improvement by not creating a ProgressBar for
1149
 
      every KnitIndex we create. (about 90ms for a bzr.dev tree)
1150
 
      (John Arbash Meinel)
1151
 
 
1152
 
    * New easier to use Branch hooks facility. There are five initial hooks,
1153
 
      all documented in bzrlib.branch.BranchHooks.__init__ - ``'set_rh'``,
1154
 
      ``'post_push'``, ``'post_pull'``, ``'post_commit'``,
1155
 
      ``'post_uncommit'``. These hooks fire after the matching operation
1156
 
      on a branch has taken place, and were originally added for the
1157
 
      branchrss plugin. (Robert Collins)
1158
 
 
1159
 
    * New method ``Branch.push()`` which should be used when pushing from a
1160
 
      branch as it makes performance and policy decisions to match the UI
1161
 
      level command ``push``. (Robert Collins).
1162
 
 
1163
 
    * Add a new method ``Tree.revision_tree`` which allows access to cached
1164
 
      trees for arbitrary revisions. This allows the in development dirstate
1165
 
      tree format to provide access to the callers to cached copies of 
1166
 
      inventory data which are cheaper to access than inventories from the
1167
 
      repository.
1168
 
      (Robert Collins, Martin Pool)
1169
 
 
1170
 
    * New ``Branch.last_revision_info`` method, this is being done to allow
1171
 
      optimization of requests for both the number of revisions and the last
1172
 
      revision of a branch with smartservers and potentially future branch
1173
 
      formats. (Wouter van Heyst, Robert Collins)
1174
 
 
1175
 
    * Allow ``'import bzrlib.plugins.NAME'`` to work when the plugin NAME has not
1176
 
      yet been loaded by ``load_plugins()``. This allows plugins to depend on each
1177
 
      other for code reuse without requiring users to perform file-renaming
1178
 
      gymnastics. (Robert Collins)
1179
 
 
1180
 
    * New Repository method ``'gather_stats'`` for statistic data collection.
1181
 
      This is expected to grow to cover a number of related uses mainly
1182
 
      related to bzr info. (Robert Collins)
1183
 
 
1184
 
    * Log formatters are now managed with a registry.
1185
 
      ``log.register_formatter`` continues to work, but callers accessing
1186
 
      the FORMATTERS dictionary directly will not.
1187
 
 
1188
 
    * Allow a start message to be passed to the ``edit_commit_message``
1189
 
      function.  This will be placed in the message offered to the user
1190
 
      for editing above the separator. It allows a template commit message
1191
 
      to be used more easily. (James Westby)
1192
 
 
1193
 
    * ``GPGStrategy.sign()`` will now raise ``BzrBadParameterUnicode`` if
1194
 
      you pass a Unicode string rather than an 8-bit string. Callers need
1195
 
      to be updated to encode first. (John Arbash Meinel)
1196
 
 
1197
 
    * Branch.push, pull, merge now return Result objects with information
1198
 
      about what happened, rather than a scattering of various methods.  These
1199
 
      are also passed to the post hooks.  (Martin Pool)
1200
 
 
1201
 
    * File formats and architecture is in place for managing a forest of trees
1202
 
      in bzr, and splitting up existing trees into smaller subtrees, and
1203
 
      finally joining trees to make a larger tree. This is the first iteration
1204
 
      of this support, and the user-facing aspects still require substantial
1205
 
      work.  If you wish to experiment with it, use ``bzr upgrade
1206
 
      --dirstate-with-subtree`` in your working trees and repositories.
1207
 
      You can use the hidden commands ``split`` and ``join`` and to create
1208
 
      and manipulate nested trees, but please consider using the nested-trees
1209
 
      branch, which contains substantial UI improvements, instead.
1210
 
      http://code.aaronbentley.com/bzr/bzrrepo/nested-trees/
1211
 
      (Aaron Bentley, Martin Pool, Robert Collins).
1212
 
 
1213
 
  BUGFIXES:
1214
 
 
1215
 
    * ``bzr annotate`` now uses dotted revnos from the viewpoint of the
1216
 
      branch, rather than the last changed revision of the file.
1217
 
      (John Arbash Meinel, #82158)
1218
 
 
1219
 
    * Lock operations no longer hang if they encounter a permission problem.
1220
 
      (Aaron Bentley)
1221
 
 
1222
 
    * ``bzr push`` can resume a push that was canceled before it finished.
1223
 
      Also, it can push even if the target directory exists if you supply
1224
 
      the ``--use-existing-dir`` flag.
1225
 
      (John Arbash Meinel, #30576, #45504)
1226
 
 
1227
 
    * Fix http proxy authentication when user and an optional
1228
 
      password appears in the ``*_proxy`` vars. (Vincent Ladeuil,
1229
 
      #83954).
1230
 
 
1231
 
    * ``bzr log branch/file`` works for local treeless branches
1232
 
      (Aaron Bentley, #84247)
1233
 
 
1234
 
    * Fix problem with UNC paths on Windows 98. (Alexander Belchenko, #84728)
1235
 
 
1236
 
    * Searching location of CA bundle for PyCurl in env variable
1237
 
      (``CURL_CA_BUNDLE``), and on win32 along the PATH.
1238
 
      (Alexander Belchenko, #82086)
1239
 
 
1240
 
    * ``bzr init`` works with unicode argument LOCATION.
1241
 
      (Alexander Belchenko, #85599)
1242
 
 
1243
 
    * Raise ``DependencyNotPresent`` if pycurl do not support https. 
1244
 
      (Vincent Ladeuil, #85305)
1245
 
 
1246
 
    * Invalid proxy env variables should not cause a traceback.
1247
 
      (Vincent Ladeuil, #87765)
1248
 
 
1249
 
    * Ignore patterns normalised to use '/' path separator.
1250
 
      (Kent Gibson, #86451)
1251
 
 
1252
 
    * bzr rocks. It sure does! Fix case. (Vincent Ladeuil, #78026)
1253
 
 
1254
 
    * Fix bzrtools shelve command for removed lines beginning with "--"
1255
 
      (Johan Dahlberg, #75577)
1256
 
 
1257
 
  TESTING:
1258
 
 
1259
 
    * New ``--first`` option to ``bzr selftest`` to run specified tests
1260
 
      before the rest of the suite.  (Martin Pool)
1261
 
 
1262
 
 
1263
 
bzr 0.14  2007-01-23
1264
 
 
1265
 
  IMPROVEMENTS:
1266
 
 
1267
 
    * ``bzr help global-options`` describes the global options. (Aaron Bentley)
1268
 
 
1269
 
  BUG FIXES:
1270
 
    
1271
 
    * Skip documentation generation tests if the tools to do so are not
1272
 
      available. Fixes running selftest for installled copies of bzr. 
1273
 
      (John Arbash Meinel, #80330)
1274
 
 
1275
 
    * Fix the code that discovers whether bzr is being run from it's
1276
 
      working tree to handle the case when it isn't but the directory
1277
 
      it is in is below a repository. (James Westby, #77306)
1278
 
 
1279
 
 
1280
 
bzr 0.14rc1  2007-01-16
1281
 
 
1282
3
  IMPROVEMENTS:
1283
4
 
1284
5
    * New connection: ``bzr+http://`` which supports tunnelling the smart
1350
71
 
1351
72
    * Test suite ends cleanly on Windows.  (Vincent Ladeuil)
1352
73
 
1353
 
    * When ``encoding_type`` attribute of class Command is equal to 'exact', 
 
74
    * When 'encoding_type' attribute of class Command is equal to 'exact', 
1354
75
      force sys.stdout to be a binary stream on Windows, and therefore
1355
76
      keep exact line-endings (without LF -> CRLF conversion).
1356
77
      (Alexander Belchenko)
1374
95
      ``--show-ids`` to display the original revision ids, rather than
1375
96
      revision numbers and committer names. (John Arbash Meinel, #75637)
1376
97
 
1377
 
    * bzr now supports Win32 UNC path (e.g. ``\HOST\path``. 
 
98
    * bzr now supports Win32 UNC path (e.g. \\HOST\path). 
1378
99
      (Alexander Belchenko, #57869)
1379
100
 
1380
101
    * Win32-specific: output of cat, bundle and diff commands don't mangle
1461
182
 
1462
183
    * ``MemoryTransport.list_dir()`` would strip the first character for
1463
184
      files or directories in root directory. (John Arbash Meinel)
1464
 
 
1465
 
    * New method ``get_branch_reference`` on 'BzrDir' allows the detection of 
1466
 
      branch references - which the smart server component needs.
1467
185
  
1468
186
    * New ``ChrootTransportDecorator``, accessible via the ``chroot+`` url
1469
187
      prefix.  It disallows any access to locations above a set URL.  (Andrew
1471
189
 
1472
190
  BUG FIXES:
1473
191
 
1474
 
    * Now ``_KnitIndex`` properly decode revision ids when loading index data.
1475
 
      And optimize the knit index parsing code. 
1476
 
      (Dmitry Vasiliev, John Arbash Meinel)
 
192
    * Now _KnitIndex properly decode revision ids when loading index data.
 
193
      And optimize the knit index parsing code.  (Dmitry Vasiliev, John
 
194
      Arbash Meinel)
1477
195
 
1478
196
    * ``bzrlib/bzrdir.py`` was directly referencing ``bzrlib.workingtree``,
1479
197
      without importing it. This prevented ``bzr upgrade`` from working
1494
212
      line (for the urllib implementation). Don't request already
1495
213
      known passwords (Vincent Ladeuil, #42383, #44647, #48527)
1496
214
 
1497
 
    * ``_KnitIndex.add_versions()`` dictionary compresses revision ids as they
 
215
    * _KnitIndex.add_versions() dictionary compresses revision ids as they
1498
216
      are added. This fixes bug where fetching remote revisions records
1499
 
      them as full references rather than integers.
1500
 
      (John Arbash Meinel, #64789)
 
217
      them as full references rather than integers. (John Arbash Meinel,
 
218
      #64789)
1501
219
 
1502
220
    * ``bzr ignore`` strips trailing slashes in patterns.
1503
221
      Also ``bzr ignore`` rejects absolute paths. (Kent Gibson, #4559)
1551
269
      commands such as log, diff etc. (Robert Collins)
1552
270
 
1553
271
    * revisions can now be specified using dotted-decimal revision numbers.
1554
 
      For instance, ``bzr diff -r 1.2.1..1.2.3``. (Robert Collins)
 
272
      For instance, ``bzr diff -r 1.2.1..1.2.3. (Robert Collins)
1555
273
 
1556
274
    * ``bzr help commands`` output is now shorter (Aaron Bentley)
1557
275
 
1563
281
    * New Registry class to provide name-to-object registry-like support,
1564
282
      for example for schemes where plugins can register new classes to
1565
283
      do certain tasks (e.g. log formatters). Also provides lazy registration
1566
 
      to allow modules to be loaded on request.
1567
 
      (John Arbash Meinel, Adeodato Simó)
 
284
      to allow modules to be loaded on request. (John Arbash Meinel, Adeodato
 
285
      Simó)
1568
286
 
1569
287
  API INCOMPATABILITY:
1570
288
  
1590
308
      (Aaron Bentley)
1591
309
 
1592
310
    * ``WorkingTree.set_root_id(None)`` is now deprecated. Please
1593
 
      pass in ``inventory.ROOT_ID`` if you want the default root id value.
 
311
      pass in inventory.ROOT_ID if you want the default root id value.
1594
312
      (Robert Collins, John Arbash Meinel)
1595
313
 
1596
314
    * New method ``WorkingTree.flush()`` which will write the current memory
1597
 
      inventory out to disk. At the same time, ``read_working_inventory`` will
 
315
      inventory out to disk. At the same time, read_working_inventory will
1598
316
      no longer trash the current tree inventory if it has been modified within
1599
317
      the current lock, and the tree will now ``flush()`` automatically on
1600
318
      ``unlock()``. ``WorkingTree.set_root_id()`` has been updated to take
1701
419
      modules will not actually be imported if they are not used.
1702
420
      (John Arbash Meinel)
1703
421
 
1704
 
    * Support ``bzr://`` and ``bzr+ssh://`` urls to work with the new RPC-based
 
422
    * Support bzr:// and bzr+ssh:// urls to work with the new RPC-based
1705
423
      transport which will be used with the upcoming high-performance smart
1706
424
      server. The new command ``bzr serve`` will invoke bzr in server mode,
1707
425
      which processes these requests. (Andrew Bennetts, Robert Collins, Martin
1714
432
 
1715
433
  BUG FIXES:
1716
434
 
1717
 
    * ``'bzr inventory [FILE...]'`` allows restricting the file list to a
 
435
    * 'bzr inventory [FILE...]' allows restricting the file list to a
1718
436
      specific set of files. (John Arbash Meinel, #3631)
1719
437
 
1720
438
    * Don't abort when annotating empty files (John Arbash Meinel, #56814)
1746
464
    * Handle when LANG is not recognized by python. Emit a warning, but
1747
465
      just revert to using 'ascii'. (John Arbash Meinel, #35392)
1748
466
 
1749
 
    * Don't use ``preexec_fn`` on win32, as it is not supported by subprocess.
 
467
    * Don't use preexec_fn on win32, as it is not supported by subprocess.
1750
468
      (John Arbash Meinel)
1751
469
 
1752
470
    * Skip specific tests when the dependencies aren't met. This includes
1778
496
      than having HOME set to the same location as the working directory.
1779
497
      (John Arbash Meinel)
1780
498
 
1781
 
    * ``run_bzr_subprocess()`` can take an optional ``env_changes={}`` parameter,
 
499
    * run_bzr_subprocess() can take an optional 'env_changes={}' parameter,
1782
500
      which will update os.environ inside the spawned child. It also can
1783
 
      take a ``universal_newlines=True``, which helps when checking the output
 
501
      take a 'universal_newlines=True', which helps when checking the output
1784
502
      of the command. (John Arbash Meinel)
1785
503
 
1786
504
    * Refactor SFTP vendors to allow easier re-use when ssh is used. 
1787
505
      (Andrew Bennetts)
1788
506
 
1789
 
    * ``Transport.list_dir()`` and ``Transport.iter_files_recursive()`` should always
 
507
    * Transport.list_dir() and Transport.iter_files_recursive() should always
1790
508
      return urlescaped paths. This is now tested (there were bugs in a few
1791
509
      of the transports) (Andrew Bennetts, David Allouche, John Arbash Meinel)
1792
510
 
1793
 
    * New utility function ``symbol_versioning.deprecation_string``. Returns the
 
511
    * New utility function symbol_versioning.deprecation_string. Returns the
1794
512
      formatted string for a callable, deprecation format pair. (Robert Collins)
1795
513
 
1796
514
    * New TestCase helper applyDeprecated. This allows you to call a callable
1798
516
      the deprecation format string issued for it. (Robert Collins)
1799
517
 
1800
518
    * Transport.append and Transport.put have been deprecated in favor of
1801
 
      ``.append_bytes``, ``.append_file``, ``.put_bytes``, and
1802
 
      ``.put_file``. This removes the ambiguity in what type of object the
1803
 
      functions take.  ``Transport.non_atomic_put_{bytes,file}`` has also
1804
 
      been added. Which works similarly to ``Transport.append()`` except for
1805
 
      SFTP, it doesn't have a round trip when opening the file. Also, it
1806
 
      provides functionality for creating a parent directory when trying
1807
 
      to create a file, rather than raise NoSuchFile and forcing the
1808
 
      caller to repeat their request.
 
519
      .append_bytes, .append_file, .put_bytes, and .put_file. This removes the
 
520
      ambiguity in what type of object the functions take.
 
521
      Transport.non_atomic_put_{bytes,file} has also been added. Which works
 
522
      similarly to Transport.append() except for SFTP, it doesn't have a round
 
523
      trip when opening the file. Also, it provides functionality for creating
 
524
      a parent directory when trying to create a file, rather than raise
 
525
      NoSuchFile and forcing the caller to repeat their request.
1809
526
      (John Arbash Meinel)
1810
527
 
1811
528
    * WorkingTree has a new api ``unversion`` which allow the unversioning of
1812
529
      entries by their file id. (Robert Collins)
1813
530
 
1814
 
    * ``WorkingTree.pending_merges`` is deprecated.  Please use the
1815
 
      ``get_parent_ids`` (introduced in 0.10) method instead. (Robert Collins)
 
531
    * WorkingTree.pending_merges is deprecated.  Please use the get_parent_ids
 
532
      (introduced in 0.10) method instead. (Robert Collins)
1816
533
 
1817
 
    * WorkingTree has a new ``lock_tree_write`` method which locks the branch for
 
534
    * WorkingTree has a new lock_tree_write method which locks the branch for
1818
535
      read rather than write. This is appropriate for actions which only need
1819
536
      the branch data for reference rather than mutation. A new decorator
1820
 
      ``needs_tree_write_lock`` is provided in the workingtree module. Like the
1821
 
      ``needs_read_lock`` and ``needs_write_lock`` decorators this allows static 
 
537
      needs_tree_write_lock is provided in the workingtree module. Like the
 
538
      needs_read_lock and needs_write_lock decorators this allows static 
1822
539
      declaration of the locking requirements of a function to ensure that
1823
540
      a lock is taken out for casual scripts. (Robert Collins, #54107)
1824
541
 
1839
556
    * WorkingTree has a new parent class MutableTree which represents the 
1840
557
      specialisations of Tree which are able to be altered. (Robert Collins)
1841
558
 
1842
 
    * New methods mkdir and ``put_file_bytes_non_atomic`` on MutableTree that
 
559
    * New methods mkdir and put_file_bytes_non_atomic on MutableTree that
1843
560
      mutate the tree and its contents. (Robert Collins)
1844
561
 
1845
562
    * Transport behaviour at the root of the URL is now defined and tested.
1850
567
    * New test helper classs MemoryTree. This is typically accessed via
1851
568
      ``self.make_branch_and_memory_tree()`` in test cases. (Robert Collins)
1852
569
      
1853
 
    * Add ``start_bzr_subprocess`` and ``stop_bzr_subprocess`` to allow test
1854
 
      code to continue running concurrently with a subprocess of bzr.
1855
 
      (Andrew Bennetts, Robert Collins)
 
570
    * Add start_bzr_subprocess and stop_bzr_subprocess to allow test code to
 
571
      continue running concurrently with a subprocess of bzr. (Andrew Bennetts,
 
572
      Robert Collins)
1856
573
 
1857
574
    * Add a new method ``Transport.get_smart_client()``. This is provided to
1858
575
      allow upgrades to a richer interface than the VFS one provided by
1866
583
  
1867
584
    * 'bzr add --file-ids-from' can be used to specify another path to use
1868
585
      for creating file ids, rather than generating all new ones. Internally,
1869
 
      the 'action' passed to ``smart_add_tree()`` can return ``file_ids`` that
 
586
      the 'action' passed to smart_add_tree() can return file_ids that
1870
587
      will be used, rather than having bzrlib generate new ones.
1871
588
      (John Arbash Meinel, #55781)
1872
589
 
1886
603
    * Help diffutils 2.8.4 get along with binary tests (Marien Zwart: #57614)
1887
604
 
1888
605
    * Change LockDir so that if the lock directory doesn't exist when
1889
 
      ``lock_write()`` is called, an attempt will be made to create it.
 
606
      lock_write() is called, an attempt will be made to create it.
1890
607
      (John Arbash Meinel, #56974)
1891
608
 
1892
609
    * ``bzr uncommit`` preserves pending merges. (John Arbash Meinel, #57660)
1907
624
    * Handle TZ=UTC properly when reading/writing revisions.
1908
625
      (John Arbash Meinel, #55783, #56290)
1909
626
 
1910
 
    * Use ``GPG_TTY`` to allow gpg --cl to work with gpg-agent in a pipeline,
 
627
    * Use GPG_TTY to allow gpg --cl to work with gpg-agent in a pipeline,
1911
628
      (passing text to sign in on stdin). (John Arbash Meinel, #54468)
1912
629
 
1913
630
    * External diff does the right thing for binaries even in foreign 
1914
631
      languages. (John Arbash Meinel, #56307)
1915
632
 
1916
633
    * Testament handles more cases when content is unicode. Specific bug was
1917
 
      in handling of revision properties.
1918
 
      (John Arbash Meinel, Holger Krekel, #54723)
 
634
      in handling of revision properties. (John Arbash Meinel, Holger Krekel,
 
635
      #54723)
1919
636
 
1920
637
    * The bzr selftest was failing on installed versions due to a bug in a new
1921
638
      test helper. (John Arbash Meinel, Robert Collins, #58057)
1938
655
 
1939
656
   * The hard-coded built-in ignore rules have been removed. There are
1940
657
     now two rulesets which are enforced. A user global one in 
1941
 
     ``~/.bazaar/ignore`` which will apply to every tree, and the tree
 
658
     ~/.bazaar/ignore which will apply to every tree, and the tree
1942
659
     specific one '.bzrignore'.
1943
 
     ``~/.bazaar/ignore`` will be created if it does not exist, but with
 
660
     ~/.bazaar/ignore will be created if it does not exist, but with
1944
661
     a more conservative list than the old default.
1945
662
     This fixes bugs with default rules being enforced no matter what. 
1946
663
     The old list of ignore rules from bzr is available by
1962
679
     proper printing when the user's terminal encoding cannot display 
1963
680
     the path of a file that has been versioned.
1964
681
     ``bzr branch`` can take a target URL rather than only a local directory.
1965
 
     ``Branch.get_parent()/set_parent()`` now save a relative path if possible,
 
682
     Branch.get_parent()/set_parent() now save a relative path if possible,
1966
683
     and normalize the parent based on root, allowing access across
1967
684
     different transports. (John Arbash Meinel, Wouter van Heyst, Martin Pool)
1968
685
     (Malone #48906, #42699, #40675, #5281, #3980, #36363, #43689,
1969
 
     #42517, #42514)
 
686
      #42517, #42514)
1970
687
 
1971
688
   * On Unix, detect terminal width using an ioctl not just $COLUMNS.
1972
689
     Use terminal width for single-line logs from ``bzr log --line`` and
2033
750
     Also updates things like 'http+pycurl://' if pycurl is not present.
2034
751
     (John Arbash Meinel) (Malone #47821, #52204)
2035
752
 
2036
 
   * New env variable ``BZR_PROGRESS_BAR``, sets the default progress bar type.
 
753
   * New env variable BZR_PROGRESS_BAR, sets the default progress bar type.
2037
754
     Can be set to 'none' or 'dummy' to disable the progress bar, 'dots' or 
2038
755
     'tty' to create the respective type. (John Arbash Meinel, #42197, #51107)
2039
756
 
2065
782
  BUG FIXES:
2066
783
 
2067
784
    * Fix shadowed definition of TestLocationConfig that caused some 
2068
 
      tests not to run.
2069
 
      (Erik Bågfors, Michael Ellerman, Martin Pool, #32587)
 
785
      tests not to run.  (#32587, Erik Bågfors, Michael Ellerman, 
 
786
      Martin Pool)
2070
787
 
2071
788
    * Fix unnecessary requirement of sign-my-commits that it be run from
2072
789
      a working directory.  (Martin Pool, Robert Collins)
2073
790
 
2074
791
    * 'bzr push location' will only remember the push location if it succeeds
2075
 
      in connecting to the remote location. (John Arbash Meinel, #49742)
 
792
      in connecting to the remote location. (#49742, John Arbash Meinel)
2076
793
 
2077
794
    * 'bzr revert' no longer toggles the executable bit on win32
2078
 
      (John Arbash Meinel, #45010)
 
795
      (#45010, John Arbash Meinel)
2079
796
 
2080
797
    * Handle broken pipe under win32 correctly. (John Arbash Meinel)
2081
798
    
2090
807
      and y.
2091
808
 
2092
809
    * File-ids containing single- or double-quotes are handled correctly by
2093
 
      push. (Aaron Bentley, #52227)
 
810
      push.  (#52227, Aaron Bentley)
2094
811
 
2095
812
    * Normalize unicode filenames to ensure cross-platform consistency.
2096
813
      (John Arbash Meinel, #43689)
2103
820
    * Bundles can properly read binary files with a plain '\r' in them.
2104
821
      (John Arbash Meinel, #51927)
2105
822
 
2106
 
    * Tuning ``iter_entries()`` to be more efficient (John Arbash Meinel, #5444)
 
823
    * Tuning iter_entries() to be more efficient (John Arbash Meinel, #5444)
2107
824
 
2108
825
    * Lots of win32 fixes (the test suite passes again).
2109
826
      (John Arbash Meinel, #50155)
2147
864
 
2148
865
    * Use the right suffixes for loading plugins (John Arbash Meinel, #51810)
2149
866
 
2150
 
    * Fix ``Branch.get_parent()`` to handle the case when the parent is not 
 
867
    * Fix Branch.get_parent() to handle the case when the parent is not 
2151
868
      accessible (John Arbash Meinel, #52976)
2152
869
 
2153
870
  INTERNALS:
2156
873
      them to reduce the threshold where  N^2 behaviour occurs in operations
2157
874
      like status. (Jan Hudec, Robert Collins).
2158
875
 
2159
 
    * Appending to ``bzrlib.DEFAULT_IGNORE`` is now deprecated. Instead, use
 
876
    * Appending to bzrlib.DEFAULT_IGNORE is now deprecated. Instead, use
2160
877
      one of the add functions in bzrlib.ignores. (John Arbash Meinel)
2161
878
 
2162
879
    * 'bzr push' should only push the ancestry of the current revision, not
2163
880
      all of the history in the repository. This is especially important for
2164
881
      shared repositories. (John Arbash Meinel)
2165
882
 
2166
 
    * ``bzrlib.delta.compare_trees`` now iterates in alphabetically sorted order,
 
883
    * bzrlib.delta.compare_trees now iterates in alphabetically sorted order,
2167
884
      rather than randomly walking the inventories. (John Arbash Meinel)
2168
885
 
2169
886
    * Doctests are now run in temporary directories which are cleaned up when
2174
891
      so that it can be specialized in ways that are useful or efficient for
2175
892
      different formats.  (Martin Pool, Robert Collins)
2176
893
 
2177
 
    * Deprecate ``Repository.all_revision_ids``; most methods don't really need
 
894
    * Deprecate Repository.all_revision_ids; most methods don't really need
2178
895
      the global revision graph but only that part leading up to a particular
2179
896
      revision.  (Martin Pool, Robert Collins)
2180
897
 
2181
 
    * Add a BzrDirFormat ``control_formats`` list which allows for control formats
 
898
    * Add a BzrDirFormat control_formats list which allows for control formats
2182
899
      that do not use '.bzr' to store their data - i.e. '.svn', '.hg' etc.
2183
900
      (Robert Collins, Jelmer Vernooij).
2184
901
 
2185
 
    * ``bzrlib.diff.external_diff`` can be redirected to any file-like object.
 
902
    * bzrlib.diff.external_diff can be redirected to any file-like object.
2186
903
      Uses subprocess instead of spawnvp.
2187
 
      (James Henstridge, John Arbash Meinel, #4047, #48914)
 
904
      (#4047, #48914, James Henstridge, John Arbash Meinel)
2188
905
 
2189
906
    * New command line option '--profile-imports', which will install a custom
2190
907
      importer to log time to import modules and regex compilation time to 
2191
908
      sys.stderr (John Arbash Meinel)
2192
909
 
2193
 
    * 'EmptyTree' is now deprecated, please use ``repository.revision_tree(None)``
 
910
    * 'EmptyTree' is now deprecated, please use repository.revision_tree(None)
2194
911
      instead. (Robert Collins)
2195
912
 
2196
913
    * "RevisionTree" is now in bzrlib/revisiontree.py. (Robert Collins)
2213
930
 
2214
931
    * Separate functionality from assert statements as they are skipped in
2215
932
      optimized mode of python. Add the same check to pending merges.
2216
 
      (Olaf Conradi, #44443)
 
933
      (#44443, Olaf Conradi)
2217
934
 
2218
935
  CHANGES:
2219
936
 
2220
937
    * Do not show the None revision in output of bzr ancestry. (Olaf Conradi)
2221
938
 
2222
939
    * Add info on standalone branches without a working tree.
2223
 
      (Olaf Conradi, #44155)
 
940
      (#44155, Olaf Conradi)
2224
941
 
2225
 
    * Fix bug in knits when raising InvalidRevisionId. (Olaf Conradi, #44284)
 
942
    * Fix bug in knits when raising InvalidRevisionId. (#44284, Olaf Conradi)
2226
943
 
2227
944
  CHANGES:
2228
945
 
2229
946
    * Make editor invocation comply with Debian Policy. First check
2230
947
      environment variables VISUAL and EDITOR, then try editor from
2231
948
      alternatives system. If that all fails, fall back to the pre-defined
2232
 
      list of editors. (Olaf Conradi, #42904)
 
949
      list of editors. (#42904, Olaf Conradi)
2233
950
 
2234
951
  NEW FEATURES:
2235
952
 
2239
956
 
2240
957
  INTERNALS:
2241
958
 
2242
 
    * New public api in InventoryEntry - ``describe_change(old, new)`` which
 
959
    * New public api in InventoryEntry - 'describe_change(old, new)' which
2243
960
      provides a human description of the changes between two old and
2244
961
      new. (Robert Collins, Martin Pool)
2245
962
 
2288
1005
  IMPROVEMENTS:
2289
1006
 
2290
1007
    * Sftp paths can now be relative, or local, according to the lftp
2291
 
      convention. Paths now take the form::
2292
 
 
2293
 
          sftp://user:pass@host:port/~/relative/path
2294
 
          or
2295
 
          sftp://user:pass@host:port/absolute/path
 
1008
      convention. Paths now take the form:
 
1009
      sftp://user:pass@host:port/~/relative/path
 
1010
      or
 
1011
      sftp://user:pass@host:port/absolute/path
2296
1012
 
2297
1013
    * The FTP transport now tries to reconnect after a temporary
2298
1014
      failure. ftp put is made atomic. (Matthieu Moy)
2301
1017
      reuses them to avoid multiple connections to the same host (like
2302
1018
      sftp did). (Daniel Silverstone)
2303
1019
 
2304
 
    * The ``bzr_man.py`` file has been removed. To create the man page now,
2305
 
      use ``./generate_docs.py man``. The new program can also create other files.
2306
 
      Run ``python generate_docs.py --help`` for usage information.
2307
 
      (Hans Ulrich Niedermann & James Blackwell).
 
1020
    * The bzr_man.py file has been removed. To create the man page now,
 
1021
      use ./generate_docs.py man. The new program can also create other files.
 
1022
      Run "python generate_docs.py --help" for usage information. (Hans
 
1023
      Ulrich Niedermann & James Blackwell).
2308
1024
 
2309
 
    * Man Page now gives full help (James Blackwell).
2310
 
      Help also updated to reflect user config now being stored in .bazaar
2311
 
      (Hans Ulrich Niedermann)
 
1025
    * Man Page now gives full help (James Blackwell). Help also updated to 
 
1026
      reflect user config now being stored in .bazaar (Hans Ulrich
 
1027
      Niedermann)
2312
1028
 
2313
1029
    * It's now possible to set aliases in bazaar.conf (Erik Bågfors)
2314
1030
 
2315
1031
    * Pull now accepts a --revision argument (Erik Bågfors)
2316
1032
 
2317
 
    * ``bzr re-sign`` now allows multiple revisions to be supplied on the command
2318
 
      line. You can now use the following command to sign all of your old
2319
 
      commits::
2320
 
 
 
1033
    * 'bzr re-sign' now allows multiple revisions to be supplied on the command
 
1034
      line. You can now use the following command to sign all of your old commits.
2321
1035
        find .bzr/revision-store// -name my@email-* \
2322
1036
          | sed 's/.*\/\/..\///' \
2323
1037
          | xargs bzr re-sign
2403
1117
    * Commit is now verbose by default, and shows changed filenames and the 
2404
1118
      new revision number.  (Robert Collins, Martin Pool)
2405
1119
 
2406
 
    * Unify 'mv', 'move', 'rename'.  (Matthew Fuller, #5379)
 
1120
    * Unify 'mv', 'move', 'rename'.  (#5379, Matthew Fuller)
2407
1121
 
2408
 
    * 'bzr -h' shows help.  (Martin Pool, Ian Bicking, #35940)
 
1122
    * 'bzr -h' shows help.  (#35940, Martin Pool, Ian Bicking)
2409
1123
 
2410
1124
    * Make 'pull' and 'push' remember location on failure using --remember.
2411
1125
      (Olaf Conradi)
2431
1145
 
2432
1146
    * Using Tree Transform for merge, revert, tree-building
2433
1147
 
2434
 
    * WorkingTree.create, Branch.create, ``WorkingTree.create_standalone``,
2435
 
      Branch.initialize are now deprecated. Please see ``BzrDir.create_*`` for
 
1148
    * WorkingTree.create, Branch.create, WorkingTree.create_standalone,
 
1149
      Branch.initialize are now deprecated. Please see BzrDir.create_* for
2436
1150
      replacement API's. (Robert Collins)
2437
1151
 
2438
1152
    * New BzrDir class represents the .bzr control directory and manages
2442
1156
      Repository actions and allows for clean selection of optimised code
2443
1157
      paths. (Robert Collins)
2444
1158
 
2445
 
    * ``bzrlib.fetch.fetch`` and ``bzrlib.fetch.greedy_fetch`` are now
2446
 
      deprecated, please use ``branch.fetch`` or ``repository.fetch``
2447
 
      depending on your needs. (Robert Collins)
 
1159
    * bzrlib.fetch.fetch and bzrlib.fetch.greedy_fetch are now deprecated,
 
1160
      please use 'branch.fetch' or 'repository.fetch' depending on your
 
1161
      needs. (Robert Collins)
2448
1162
 
2449
 
    * deprecated methods now have a ``is_deprecated`` flag on them that can
 
1163
    * deprecated methods now have a 'is_deprecated' flag on them that can
2450
1164
      be checked, if you need to determine whether a given callable is 
2451
1165
      deprecated at runtime. (Robert Collins)
2452
1166
 
2453
1167
    * Progress bars are now nested - see
2454
 
      ``bzrlib.ui.ui_factory.nested_progress_bar``.
2455
 
      (Robert Collins, Robey Pointer)
 
1168
      bzrlib.ui.ui_factory.nested_progress_bar. (Robert Collins, Robey Pointer)
2456
1169
 
2457
 
    * New API call ``get_format_description()`` for each type of format.
 
1170
    * New API call get_format_description() for each type of format.
2458
1171
      (Olaf Conradi)
2459
1172
 
2460
 
    * Changed ``branch.set_parent()`` to accept None to remove parent.
 
1173
    * Changed branch.set_parent() to accept None to remove parent.
2461
1174
      (Olaf Conradi)
2462
1175
 
2463
1176
    * Deprecated BzrError AmbiguousBase.  (Olaf Conradi)
2464
1177
 
2465
1178
    * WorkingTree.branch is now a read only property.  (Robert Collins)
2466
1179
 
2467
 
    * bzrlib.ui.text.TextUIFactory now accepts a ``bar_type`` parameter which
 
1180
    * bzrlib.ui.text.TextUIFactory now accepts a bar_type parameter which
2468
1181
      can be None or a factory that will create a progress bar. This is
2469
1182
      useful for testing or for overriding the bzrlib.progress heuristic.
2470
1183
      (Robert Collins)
2471
1184
 
2472
 
    * New API method ``get_physical_lock_status()`` to query locks present on a
 
1185
    * New API method get_physical_lock_status() to query locks present on a
2473
1186
      transport.  (Olaf Conradi)
2474
1187
 
2475
1188
    * Repository.reconcile now takes a thorough keyword parameter to allow
2476
1189
      requesting an indepth reconciliation, rather than just a data-loss 
2477
1190
      check. (Robert Collins)
2478
1191
 
2479
 
    * ``bzrlib.ui.ui_factory protocol`` now supports ``get_boolean`` to prompt
 
1192
    * bzrlib.ui.ui_factory protocol now supports 'get_boolean' to prompt
2480
1193
      the user for yes/no style input. (Robert Collins)
2481
1194
 
2482
1195
  TESTING:
2484
1197
    * SFTP tests now shortcut the SSH negotiation, reducing test overhead
2485
1198
      for testing SFTP protocol support. (Robey Pointer)
2486
1199
 
2487
 
    * Branch formats are now tested once per implementation (see ``bzrlib.
2488
 
      tests.branch_implementations``. This is analagous to the transport
 
1200
    * Branch formats are now tested once per implementation (see bzrlib.
 
1201
      tests.branch_implementations. This is analagous to the transport
2489
1202
      interface tests, and has been followed up with working tree,
2490
1203
      repository and BzrDir tests. (Robert Collins)
2491
1204
 
2501
1214
 
2502
1215
    * Move test case for uncommit to blackbox tests.  (Olaf Conradi)
2503
1216
 
2504
 
    * ``run_bzr`` and ``run_bzr_captured`` now accept a 'stdin="foo"'
2505
 
      parameter which will provide String("foo") to the command as its stdin.
 
1217
    * run_bzr and run_bzr_captured now accept a 'stdin="foo"' parameter which
 
1218
      will provide String("foo") to the command as its stdin.
2506
1219
 
2507
1220
bzr 0.7 2006-01-09
2508
1221
 
2516
1229
      versioned directories, now use "bzr inventory --kind directory".  
2517
1230
      (Johan Rydberg)
2518
1231
 
2519
 
    * Under Windows configuration directory is now ``%APPDATA%\bazaar\2.0``
 
1232
    * Under Windows configuration directory is now %APPDATA%\bazaar\2.0
2520
1233
      by default. (John Arbash Meinel)
2521
1234
 
2522
 
    * The parent of Bzr configuration directory can be set by ``BZR_HOME``
2523
 
      environment variable. Now the path for it is searched in ``BZR_HOME``,
2524
 
      then in HOME. Under Windows the order is: ``BZR_HOME``, ``APPDATA``
2525
 
      (usually points to ``C:\Documents and Settings\User Name\Application Data``),
2526
 
      ``HOME``. (John Arbash Meinel)
 
1235
    * The parent of Bzr configuration directory can be set by BZR_HOME
 
1236
      environment variable. Now the path for it is searched in BZR_HOME, then
 
1237
      in HOME. Under Windows the order is: BZR_HOME, APPDATA (usually
 
1238
      points to C:\Documents and Settings\User Name\Application Data), HOME.
 
1239
      (John Arbash Meinel)
2527
1240
 
2528
1241
    * Plugins with the same name in different directories in the bzr plugin
2529
1242
      path are no longer loaded: only the first successfully loaded one is
2568
1281
    * Added branch nicks, new nick command, printing them in log output. 
2569
1282
      (Aaron Bentley)
2570
1283
 
2571
 
    * If ``$BZR_PDB`` is set, pop into the debugger when an uncaught exception 
 
1284
    * If $BZR_PDB is set, pop into the debugger when an uncaught exception 
2572
1285
      occurs.  (Martin Pool)
2573
1286
 
2574
1287
    * Accept 'bzr resolved' (an alias for 'bzr resolve'), as this is
2577
1290
    * New ftp transport support (on ftplib), for ftp:// and aftp:// 
2578
1291
      URLs.  (Daniel Silverstone)
2579
1292
 
2580
 
    * Commit editor temporary files now start with ``bzr_log.``, to allow 
 
1293
    * Commit editor temporary files now start with 'bzr_log.', to allow 
2581
1294
      text editors to match the file name and set up appropriate modes or 
2582
1295
      settings.  (Magnus Therning)
2583
1296
 
2592
1305
      revno should be printed.  (Michael Ellerman)
2593
1306
 
2594
1307
    * bzr cat defaults to printing the last version of the file.  
2595
 
      (Matthieu Moy, #3632)
 
1308
      (#3632, Matthieu Moy)
2596
1309
 
2597
1310
    * New global option 'bzr --lsprof COMMAND' runs bzr under the lsprof 
2598
1311
      profiler.  (Denys Duchier)
2636
1349
    * Fix for sftp transport under windows when using interactive auth
2637
1350
 
2638
1351
    * Show files which are both renamed and modified as such in 'bzr 
2639
 
      status' output.  (Daniel Silverstone, #4503)
 
1352
      status' output.  (#4503, Daniel Silverstone)
2640
1353
 
2641
1354
    * Make annotate cope better with revisions committed without a valid 
2642
1355
      email address.  (Marien Zwart)
2643
1356
 
2644
 
    * Fix representation of tab characters in commit messages.
2645
 
      (Harald Meland)
 
1357
    * Fix representation of tab characters in commit messages.  (Harald 
 
1358
      Meland)
2646
1359
 
2647
 
    * List of plugin directories in ``BZR_PLUGIN_PATH`` environment variable is
 
1360
    * List of plugin directories in BZR_PLUGIN_PATH environment variable is
2648
1361
      now parsed properly under Windows. (Alexander Belchenko)
2649
1362
 
2650
1363
    * Show number of revisions pushed/pulled/merged. (Robey Pointer)
2652
1365
    * Keep a cached copy of the basis inventory to speed up operations 
2653
1366
      that need to refer to it.  (Johan Rydberg, Martin Pool)
2654
1367
 
2655
 
    * Fix bugs in bzr status display of non-ascii characters.
2656
 
      (Martin Pool)
 
1368
    * Fix bugs in bzr status display of non-ascii characters.  (Martin 
 
1369
      Pool)
2657
1370
 
2658
 
    * Remove Makefile.in from default ignore list.
2659
 
      (Tollef Fog Heen, Martin Pool, #6413)
 
1371
    * Remove Makefile.in from default ignore list.  (#6413, Tollef Fog 
 
1372
      Heen, Martin Pool)
2660
1373
 
2661
1374
    * Fix failure in 'bzr added'.  (Nathan McCallum, Martin Pool)
2662
1375
 
2671
1384
 
2672
1385
    * Make tests work even if HOME is not set (Aaron Bentley)
2673
1386
 
2674
 
    * Updated ``build_tree`` to use fixed line-endings for tests which read 
 
1387
    * Updated build_tree to use fixed line-endings for tests which read 
2675
1388
      the file cotents and compare. Make some tests use this to pass under
2676
1389
      Windows. (John Arbash Meinel)
2677
1390
 
2684
1397
 
2685
1398
    * Blackbox tests are maintained within the bzrlib.tests.blackbox directory.
2686
1399
      If adding a new test script please add that to
2687
 
      ``bzrlib.tests.blackbox.__init__``. (Robert Collins)
 
1400
      bzrlib.tests.blackbox.__init__. (Robert Collins)
2688
1401
 
2689
1402
    * Much better error message if one of the test suites can't be 
2690
1403
      imported.  (Martin Pool)
2711
1424
      see bzrlib.transport.TransportTestProviderAdapter() for this.
2712
1425
      (Robert Collins).
2713
1426
 
2714
 
    * ``TestCase.build_tree`` uses the transport interface to build trees,
2715
 
      pass in a transport parameter to give it an existing connection.
 
1427
    * TestCase.build_tree uses the transport interface to build trees, pass
 
1428
      in a transport parameter to give it an existing connection.
2716
1429
      (Robert Collins).
2717
1430
 
2718
1431
  INTERNALS:
2720
1433
    * WorkingTree.pull has been split across Branch and WorkingTree,
2721
1434
      to allow Branch only pulls. (Robert Collins)
2722
1435
 
2723
 
    * ``commands.display_command`` now returns the result of the decorated 
 
1436
    * commands.display_command now returns the result of the decorated 
2724
1437
      function. (Robert Collins)
2725
1438
 
2726
 
    * LocationConfig now has a ``set_user_option(key, value)`` call to save
 
1439
    * LocationConfig now has a set_user_option(key, value) call to save
2727
1440
      a setting in its matching location section (a new one is created
2728
1441
      if needed). (Robert Collins)
2729
1442
 
2730
 
    * Branch has two new methods, ``get_push_location`` and
2731
 
      ``set_push_location`` to respectively, get and set the push location.
2732
 
      (Robert Collins)
 
1443
    * Branch has two new methods, get_push_location and set_push_location
 
1444
      to respectively, get and set the push location. (Robert Collins)
2733
1445
 
2734
 
    * ``commands.register_command`` now takes an optional flag to signal that
 
1446
    * commands.register_command now takes an optional flag to signal that
2735
1447
      the registrant is planning to decorate an existing command. When 
2736
1448
      given multiple plugins registering a command is not an error, and
2737
1449
      the original command class (whether built in or a plugin based one) is
2742
1454
    * Some option parsing errors will raise 'BzrOptionError', allowing 
2743
1455
      granular detection for decorating commands. (Robert Collins).
2744
1456
 
2745
 
    * ``Branch.read_working_inventory`` has moved to
2746
 
      ``WorkingTree.read_working_inventory``. This necessitated changes to
2747
 
      ``Branch.get_root_id``, and a move of ``Branch.set_inventory`` to
2748
 
      WorkingTree as well. To make it clear that a WorkingTree cannot always
2749
 
      be obtained ``Branch.working_tree()`` will raise
2750
 
      ``errors.NoWorkingTree`` if one cannot be obtained. (Robert Collins)
 
1457
    * Branch.read_working_inventory has moved to
 
1458
      WorkingTree.read_working_inventory. This necessitated changes to
 
1459
      Branch.get_root_id, and a move of Branch.set_inventory to WorkingTree
 
1460
      as well. To make it clear that a WorkingTree cannot always be obtained
 
1461
      Branch.working_tree() will raise 'errors.NoWorkingTree' if one cannot
 
1462
      be obtained. (Robert Collins)
2751
1463
 
2752
1464
    * All pending merges operations from Branch are now on WorkingTree.
2753
1465
      (Robert Collins)
2754
1466
 
2755
 
    * The follow operations from Branch have moved to WorkingTree::
2756
 
 
2757
 
          add()
2758
 
          commit()
2759
 
          move()
2760
 
          rename_one()
2761
 
          unknowns()
2762
 
 
 
1467
    * The follow operations from Branch have moved to WorkingTree:
 
1468
      add()
 
1469
      commit()
 
1470
      move()
 
1471
      rename_one()
 
1472
      unknowns()
2763
1473
      (Robert Collins)
2764
1474
 
2765
 
    * ``bzrlib.add.smart_add_branch`` is now ``smart_add_tree``. (Robert Collins)
 
1475
    * bzrlib.add.smart_add_branch is now smart_add_tree. (Robert Collins)
2766
1476
 
2767
1477
    * New "rio" serialization format, similar to rfc-822. (Martin Pool)
2768
1478
 
2769
 
    * Rename selftests to ``bzrlib.tests.test_foo``.  (John A Meinel, Martin 
 
1479
    * Rename selftests to `bzrlib.tests.test_foo`.  (John A Meinel, Martin 
2770
1480
      Pool)
2771
1481
 
2772
 
    * ``bzrlib.plugin.all_plugins`` has been changed from an attribute to a 
 
1482
    * bzrlib.plugin.all_plugins has been changed from an attribute to a 
2773
1483
      query method. (Robert Collins)
2774
1484
 
2775
1485
    * New options to read only the table-of-contents of a weave.  
2778
1488
    * Raise NoSuchFile when someone tries to add a non-existant file.
2779
1489
      (Michael Ellerman)
2780
1490
 
2781
 
    * Simplify handling of DivergedBranches in ``cmd_pull()``.
 
1491
    * Simplify handling of DivergedBranches in cmd_pull().
2782
1492
      (Michael Ellerman)
 
1493
                   
2783
1494
   
2784
1495
    * Branch.controlfile* logic has moved to lockablefiles.LockableFiles, which
2785
 
      is exposed as ``Branch().control_files``. Also this has been altered with the
 
1496
      is exposed as Branch().control_files. Also this has been altered with the
2786
1497
      controlfile pre/suffix replaced by simple method names like 'get' and
2787
1498
      'put'. (Aaron Bentley, Robert Collins).
2788
1499
 
2789
1500
    * Deprecated functions and methods can now be marked as such using the 
2790
 
      ``bzrlib.symbol_versioning`` module. Marked method have their docstring
 
1501
      bzrlib.symbol_versioning module. Marked method have their docstring
2791
1502
      updated and will issue a DeprecationWarning using the warnings module
2792
1503
      when they are used. (Robert Collins)
2793
1504
 
2794
 
    * ``bzrlib.osutils.safe_unicode`` now exists to provide parameter coercion
 
1505
    * bzrlib.osutils.safe_unicode now exists to provide parameter coercion
2795
1506
      for functions that need unicode strings. (Robert Collins)
2796
1507
 
2797
1508
bzr 0.6 2005-10-28
2832
1543
    * New command 're-sign' which will regenerate the gpg signature for 
2833
1544
      a revision. (Robert Collins)
2834
1545
 
2835
 
    * If you set ``check_signatures=require`` for a path in 
2836
 
      ``~/.bazaar/branches.conf`` then bzr will invoke your
2837
 
      ``gpg_signing_command`` (defaults to gpg) and record a digital signature
 
1546
    * If you set check_signatures=require for a path in 
 
1547
      ~/.bazaar/branches.conf then bzr will invoke your
 
1548
      gpg_signing_command (defaults to gpg) and record a digital signature
2838
1549
      of your commit. (Robert Collins)
2839
1550
 
2840
1551
    * New sftp transport, based on Paramiko.  (Robey Pointer)
2848
1559
    * 'bzr branch' will now set the branch-name to the last component of the
2849
1560
      output directory, if one was supplied.
2850
1561
 
2851
 
    * If the option ``post_commit`` is set to one (or more) python function
 
1562
    * If the option 'post_commit' is set to one (or more) python function
2852
1563
      names (must be in the bzrlib namespace), then they will be invoked
2853
 
      after the commit has completed, with the branch and ``revision_id`` as
 
1564
      after the commit has completed, with the branch and revision_id as
2854
1565
      parameters. (Robert Collins)
2855
1566
 
2856
1567
    * Merge now has a retcode of 1 when conflicts occur. (Robert Collins)
2917
1628
 
2918
1629
    * Plugins are now loaded under bzrlib.plugins, not bzrlib.plugin, and
2919
1630
      they are made available for other plugins to use. You should not 
2920
 
      import other plugins during the ``__init__`` of your plugin though, as 
 
1631
      import other plugins during the __init__ of your plugin though, as 
2921
1632
      no ordering is guaranteed, and the plugins directory is not on the
2922
1633
      python path. (Robert Collins)
2923
1634
 
2930
1641
      Scott James Remnant.  (Martin Pool)
2931
1642
 
2932
1643
    * Branch.remove has been moved to WorkingTree, which has also gained
2933
 
      ``lock_read``, ``lock_write`` and ``unlock`` methods for convenience.
2934
 
      (Robert Collins)
 
1644
      lock_read, lock_write and unlock methods for convenience. (Robert
 
1645
      Collins)
2935
1646
 
2936
 
    * Two decorators, ``needs_read_lock`` and ``needs_write_lock`` have been
2937
 
      added to the branch module. Use these to cause a function to run in a
 
1647
    * Two decorators, needs_read_lock and needs_write_lock have been added
 
1648
      to the branch module. Use these to cause a function to run in a
2938
1649
      read or write lock respectively. (Robert Collins)
2939
1650
 
2940
 
    * ``Branch.open_containing`` now returns a tuple (Branch, relative-path),
 
1651
    * Branch.open_containing now returns a tuple (Branch, relative-path),
2941
1652
      which allows direct access to the common case of 'get me this file
2942
1653
      from its branch'. (Robert Collins)
2943
1654
 
2944
 
    * Transports can register using ``register_lazy_transport``, and they 
 
1655
    * Transports can register using register_lazy_transport, and they 
2945
1656
      will be loaded when first used.  (Martin Pool)
2946
1657
 
2947
 
    * 'pull' has been factored out of the command as ``WorkingTree.pull()``.
 
1658
    * 'pull' has been factored out of the command as WorkingTree.pull().
2948
1659
      A new option to WorkingTree.pull has been added, clobber, which will
2949
1660
      ignore diverged history and pull anyway.
2950
1661
      (Robert Collins)
2951
1662
 
2952
 
    * config.Config has a ``get_user_option`` call that accepts an option name.
 
1663
    * config.Config has a 'get_user_option' call that accepts an option name.
2953
1664
      This will be looked up in branches.conf and bazaar.conf as normal.
2954
1665
      It is intended that this be used by plugins to support options - 
2955
1666
      options of built in programs should have specific methods on the config.
2956
1667
      (Robert Collins)
2957
1668
 
2958
 
    * ``merge.merge_inner`` now has tempdir as an optional parameter.
2959
 
      (Robert Collins)
 
1669
    * merge.merge_inner now has tempdir as an optional parameter. (Robert
 
1670
      Collins)
2960
1671
 
2961
1672
    * Tree.kind is not recorded at the top level of the hierarchy, as it was
2962
1673
      missing on EmptyTree, leading to a bug with merge on EmptyTrees.
2963
1674
      (Robert Collins)
2964
1675
 
2965
 
    * ``WorkingTree.__del__`` has been removed, it was non deterministic and not 
2966
 
      doing what it was intended to. See ``WorkingTree.__init__`` for a comment
 
1676
    * WorkingTree.__del__ has been removed, it was non deterministic and not 
 
1677
      doing what it was intended to. See WorkingTree.__init__ for a comment
2967
1678
      about future directions. (Robert Collins/Martin Pool)
2968
1679
 
2969
1680
    * bzrlib.transport.http has been modified so that only 404 urllib errors
2974
1685
      to apis like 'put', 'get' and 'has'. This is to provide consistent
2975
1686
      behaviour - it operates on url's only. (Robert Collins)
2976
1687
 
2977
 
    * Transports can register using ``register_lazy_transport``, and they 
 
1688
    * Transports can register using register_lazy_transport, and they 
2978
1689
      will be loaded when first used.  (Martin Pool)
2979
1690
 
2980
 
    * ``merge_flex`` no longer calls ``conflict_handler.finalize()``, instead that
2981
 
      is called by ``merge_inner``. This is so that the conflict count can be 
 
1691
    * 'merge_flex' no longer calls conflict_handler.finalize(), instead that
 
1692
      is called by merge_inner. This is so that the conflict count can be 
2982
1693
      retrieved (and potentially manipulated) before returning to the caller
2983
 
      of ``merge_inner``. Likewise 'merge' now returns the conflict count to the
 
1694
      of merge_inner. Likewise 'merge' now returns the conflict count to the
2984
1695
      caller. (Robert Collins)
2985
1696
 
2986
 
    * ``revision.revision_graph`` can handle having only partial history for
 
1697
    * 'revision.revision_graph can handle having only partial history for
2987
1698
      a revision - that is no revisions in the graph with no parents.
2988
1699
      (Robert Collins).
2989
1700
 
2990
 
    * New ``builtins.branch_files`` uses the standard ``file_list`` rules to
2991
 
      produce a branch and a list of paths, relative to that branch
2992
 
      (Aaron Bentley)
 
1701
    * New builtins.branch_files uses the standard file_list rules to produce
 
1702
      a branch and a list of paths, relative to that branch (Aaron Bentley)
2993
1703
 
2994
1704
    * New TestCase.addCleanup facility.
2995
1705
 
2996
 
    * New ``bzrlib.version_info`` tuple (similar to ``sys.version_info``),
2997
 
      which can be used by programs importing bzrlib.
 
1706
    * New bzrlib.version_info tuple (similar to sys.version_info), which can
 
1707
      be used by programs importing bzrlib.
2998
1708
 
2999
1709
  BUG FIXES:
3000
1710
 
3057
1767
      bzr will correct this when it encounters it. Fixed by
3058
1768
      Robert Collins
3059
1769
 
3060
 
    * HTTP tests now force off the use of ``http_proxy`` for the duration.
 
1770
    * HTTP tests now force off the use of http_proxy for the duration.
3061
1771
      Contributed by Gustavo Niemeyer.
3062
1772
 
3063
1773
    * Fix problems in merging weave-based branches that have 
3116
1826
      bzr branch it cannot understand. This allows for precise
3117
1827
      handling of such circumstances.
3118
1828
 
3119
 
    * Remove RevisionReference class; ``Revision.parent_ids`` is now simply a
3120
 
      list of their ids and ``parent_sha1s`` is a list of their corresponding
3121
 
      sha1s (for old branches only at the moment.)
3122
 
 
3123
 
    * New method-object style interface for Commit() and Fetch().
3124
 
 
3125
 
    * Renamed ``Branch.last_patch()`` to ``Branch.last_revision()``, since
3126
 
      we call them revisions not patches.
3127
 
 
3128
 
    * Move ``copy_branch`` to ``bzrlib.clone.copy_branch``.  The destination
3129
 
      directory is created if it doesn't exist.
3130
 
 
3131
 
    * Inventories now identify the files which were present by 
3132
 
      giving the revision *of that file*.
3133
 
 
3134
 
    * Inventory and Revision XML contains a version identifier.  
3135
 
      This must be consistent with the overall branch version
3136
 
      but allows for more flexibility in future upgrades.
3137
1829
 
3138
1830
  TESTING:
3139
1831
 
3141
1833
      bzr installed by 'bzr selftest'.
3142
1834
 
3143
1835
    * 'bzr selftest' command-line arguments can now be partial ids
3144
 
      of tests to run, e.g. ``bzr selftest test_weave``
 
1836
      of tests to run, e.g. 'bzr selftest test_weave'
3145
1837
 
3146
1838
      
3147
1839
bzr 0.0.9 2005-09-23
3192
1884
      get added when you add a file in the directory.  Contributed by
3193
1885
      Michael Ellerman.
3194
1886
 
3195
 
    * Ignore ``.DS_Store`` (contains Mac metadata) by default.
3196
 
      (Nir Soffer)
 
1887
    * Ignore .DS_Store (contains Mac metadata) by default.  Patch from
 
1888
      Nir Soffer.
3197
1889
 
3198
 
    * If you set ``BZR_EDITOR`` in the environment, it is checked in
 
1890
    * If you set BZR_EDITOR in the environment, it is checked in
3199
1891
      preference to EDITOR and the config file for the interactive commit
3200
1892
      editing program. Related to this is a bugfix where a missing program
3201
1893
      set in EDITOR would cause editing to fail, now the fallback program
3282
1974
  NEW FEATURES:
3283
1975
 
3284
1976
    * Python plugins, automatically loaded from the directories on
3285
 
      ``BZR_PLUGIN_PATH`` or ``~/.bzr.conf/plugins`` by default.
 
1977
      BZR_PLUGIN_PATH or ~/.bzr.conf/plugins by default.
3286
1978
 
3287
1979
    * New 'bzr mkdir' command.
3288
1980
 
3320
2012
    * Moved plugins directory to bzrlib/, so that there's a standard
3321
2013
      plugin directory which is not only installed with bzr itself but
3322
2014
      is also available when using bzr from the development tree.
3323
 
      ``BZR_PLUGIN_PATH`` and ``DEFAULT_PLUGIN_PATH`` are then added to the
 
2015
      BZR_PLUGIN_PATH and DEFAULT_PLUGIN_PATH are then added to the
3324
2016
      standard plugins directory.
3325
2017
 
3326
2018
    * When exporting to a tarball with ``bzr export --format tgz``, put 
3472
2164
 
3473
2165
    * Better help messages for many commands.
3474
2166
 
3475
 
    * Expose ``bzrlib.open_tracefile()`` to start the tracefile; until
 
2167
    * Expose bzrlib.open_tracefile() to start the tracefile; until
3476
2168
      this is called trace messages are just discarded.
3477
2169
 
3478
 
    * New internal function ``find_touching_revisions()`` and hidden
 
2170
    * New internal function find_touching_revisions() and hidden
3479
2171
      command touching-revisions trace the changes to a given file.
3480
2172
 
3481
 
    * Simpler and faster ``compare_inventories()`` function.
 
2173
    * Simpler and faster compare_inventories() function.
3482
2174
 
3483
 
    * ``bzrlib.open_tracefile()`` takes a tracefilename parameter.
 
2175
    * bzrlib.open_tracefile() takes a tracefilename parameter.
3484
2176
 
3485
2177
    * New AtomicFile class.
3486
2178
 
3530
2222
 
3531
2223
    * Some Unicode/locale fixes.
3532
2224
 
3533
 
    * Partial workaround for ``difflib.unified_diff`` not handling
 
2225
    * Partial workaround for difflib.unified_diff not handling
3534
2226
      trailing newlines properly.
3535
2227
 
3536
2228