~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2011-05-04 12:10:51 UTC
  • mfrom: (5819.1.4 777007-developer-doc)
  • Revision ID: pqm@pqm.ubuntu.com-20110504121051-aovlsmqiivjmc4fc
(jelmer) Small fixes to developer documentation. (Jonathan Riddell)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
IN DEVELOPMENT
2
 
 
3
 
  IMPROVEMENTS:
4
 
 
5
 
    * PyCurlTransport now use a single curl object. By specifying explicitly
6
 
      the 'Range' header, we avoid the need to use two different curl objects
7
 
      (and two connections to the same server). (Vincent Ladeuil)
8
 
 
9
 
    * ``bzr commit`` does not prompt for a message until it is very likely to
10
 
      succeed.  (Aaron Bentley)
11
 
 
12
 
    * ``bzr conflicts`` now takes --text to list pathnames of text conflicts
13
 
      (Aaron Bentley)
14
 
 
15
 
    * Fix ``iter_lines_added_or_present_in_versions`` to use a set instead
16
 
      of a list while checking if a revision id was requested. Takes 10s
17
 
      off of the ``fileids_affected_by_revision_ids`` time, which is 10s
18
 
      of the ``bzr branch`` time. (John Arbash Meinel)
19
 
 
20
 
    * Policy can be set for each configuration key. This allows keys to be
21
 
      inherited properly across configuration entries. For example, this
22
 
      should enable you to do::
23
 
        
24
 
        [/home/user/project]
25
 
        push_location = sftp://host/srv/project/
26
 
        push_location:policy = appendpath
27
 
 
28
 
      And then a branch like ``/home/user/project/mybranch`` should get an
29
 
      automatic push location of ``sftp://host/srv/project/mybranch``.
30
 
      (James Henstridge)
31
 
 
32
 
    * Added ``bzr status --short`` to make status report svn style flags
33
 
      for each file.  For example::
34
 
 
35
 
        $ bzr status --short
36
 
        A  foo
37
 
        A  bar
38
 
        D  baz
39
 
        ?  wooley
40
 
      
41
 
  INTERNALS:
42
 
 
43
 
  BUG FIXES:
44
 
 
45
 
bzr 0.13  2006-12-05
46
 
    
47
 
  No changes from 0.13rc1
48
 
    
49
 
bzr 0.13rc1  2006-11-27
50
 
 
51
 
  IMPROVEMENTS:
52
 
 
53
 
    * New command ``bzr remove-tree`` allows the removal of the working
54
 
      tree from a branch.
55
 
      (Daniel Silverstone)
56
 
 
57
 
    * urllib uses shared keep-alive connections, so http 
58
 
      operations are substantially faster.
59
 
      (Vincent Ladeuil, #53654)
60
 
 
61
 
    * ``bzr export`` allows an optional branch parameter, to export a bzr
62
 
      tree from some other url. For example:
63
 
      ``bzr export bzr.tar.gz http://bazaar-vcs.org/bzr/bzr.dev``
64
 
      (Daniel Silverstone)
65
 
 
66
 
    * Added ``bzr help topics`` to the bzr help system. This gives a
67
 
      location for general information, outside of a specific command.
68
 
      This includes updates for ``bzr help revisionspec`` the first topic
69
 
      included. (Goffredo Baroncelli, John Arbash Meinel, #42714)
70
 
 
71
 
    * WSGI-compatible HTTP smart server.  See ``doc/http_smart_server.txt``.
72
 
      (Andrew Bennetts)
73
 
 
74
 
    * Knit files will now cache full texts only when the size of the
75
 
      deltas is as large as the size of the fulltext. (Or after 200
76
 
      deltas, whichever comes first). This has the most benefit on large
77
 
      files with small changes, such as the inventory for a large project.
78
 
      (eg For a project with 2500 files, and 7500 revisions, it changes
79
 
      the size of inventory.knit from 11MB to 5.4MB) (John Arbash Meinel)
80
 
 
81
 
  INTERNALS:
82
 
 
83
 
    * New -D option given before the command line turns on debugging output
84
 
      for particular areas.  -Derror shows tracebacks on all errors.
85
 
      (Martin Pool)
86
 
 
87
 
    * Clean up ``bzr selftest --benchmark bundle`` to correct an import,
88
 
      and remove benchmarks that take longer than 10min to run.
89
 
      (John Arbash Meinel)
90
 
 
91
 
    * Use ``time.time()`` instead of ``time.clock()`` to decide on
92
 
      progress throttling. Because ``time.clock()`` is actually CPU time,
93
 
      so over a high-latency connection, too many updates get throttled.
94
 
      (John Arbash Meinel)
95
 
 
96
 
    * ``MemoryTransport.list_dir()`` would strip the first character for
97
 
      files or directories in root directory. (John Arbash Meinel)
98
 
  
99
 
    * New ``ChrootTransportDecorator``, accessible via the ``chroot+`` url
100
 
      prefix.  It disallows any access to locations above a set URL.  (Andrew
101
 
      Bennetts)
102
 
 
103
 
  BUG FIXES:
104
 
 
105
 
    * ``bzrlib/bzrdir.py`` was directly referencing ``bzrlib.workingtree``,
106
 
      without importing it. This prevented ``bzr upgrade`` from working
107
 
      unless a plugin already imported ``bzrlib.workingtree``
108
 
      (John Arbash Meinel, #70716)
109
 
 
110
 
    * Suppress the traceback on invalid URLs (Vincent Ladeuil, #70803).
111
 
 
112
 
    * Give nicer error message when an http server returns a 403
113
 
      error code. (Vincent Ladeuil, #57644).
114
 
 
115
 
    * When a multi-range http GET request fails, try a single
116
 
      range one. If it fails too, forget about ranges. Remember that until 
117
 
      the death of the transport and propagates that to the clones.
118
 
      (Vincent Ladeuil, #62276, #62029).
119
 
 
120
 
    * Handles user/passwords supplied in url from command
121
 
      line (for the urllib implementation). Don't request already
122
 
      known passwords (Vincent Ladeuil, #42383, #44647, #48527)
123
 
 
124
 
    * _KnitIndex.add_versions() dictionary compresses revision ids as they
125
 
      are added. This fixes bug where fetching remote revisions records
126
 
      them as full references rather than integers. (John Arbash Meinel,
127
 
      #64789)
128
 
 
129
 
    * ``bzr ignore`` strips trailing slashes in patterns.
130
 
      Also ``bzr ignore`` rejects absolute paths. (Kent Gibson, #4559)
131
 
 
132
 
    * ``bzr ignore`` takes multiple arguments. (Cheuksan Edward Wang, #29488)
133
 
 
134
 
    * mv correctly handles paths that traverse symlinks. 
135
 
      (Aaron Bentley, #66964)
136
 
 
137
 
    * Give nicer looking error messages when failing to connect over ssh.
138
 
      (John Arbash Meinel, #49172)
139
 
 
140
 
    * Pushing to a remote branch does not currently update the remote working
141
 
      tree. After a remote push, ``bzr status`` and ``bzr diff`` on the remote
142
 
      machine now show that the working tree is out of date.
143
 
      (Cheuksan Edward Wang #48136)
144
 
 
145
 
    * Use patiencediff instead of difflib for determining deltas to insert
146
 
      into knits. This avoids the O(N^3) behavior of difflib. Patience
147
 
      diff should be O(N^2). (Cheuksan Edward Wang, #65714)
148
 
 
149
 
    * Running ``bzr log`` on nonexistent file gives an error instead of the
150
 
      entire log history. (Cheuksan Edward Wang #50793)
151
 
 
152
 
    * ``bzr cat`` can look up contents of removed or renamed files. If the
153
 
      pathname is ambiguous, i.e. the files in the old and new trees have
154
 
      different id's, the default is the file in the new tree. The user can
155
 
      use "--name-from-revision" to select the file in the old tree.
156
 
      (Cheuksan Edward Wang, #30190)
157
 
 
158
 
  TESTING:
159
 
 
160
 
    * TestingHTTPRequestHandler really handles the Range header
161
 
      (previously it was ignoring it and returning the whole file,).
162
 
 
163
 
bzr 0.12  2006-10-30
164
 
 
165
 
  INTERNALS:
166
 
 
167
 
    * Clean up ``bzr selftest --benchmark bundle`` to correct an import,
168
 
      and remove benchmarks that take longer than 10min to run.
169
 
      (John Arbash Meinel)
170
 
  
171
 
bzr 0.12rc1  2006-10-23
172
 
 
173
 
  IMPROVEMENTS:
174
 
 
175
 
    * ``bzr log`` now shows dotted-decimal revision numbers for all revisions,
176
 
      rather than just showing a decimal revision number for revisions on the
177
 
      mainline. These revision numbers are not yet accepted as input into bzr
178
 
      commands such as log, diff etc. (Robert Collins)
179
 
 
180
 
    * revisions can now be specified using dotted-decimal revision numbers.
181
 
      For instance, ``bzr diff -r 1.2.1..1.2.3. (Robert Collins)
182
 
 
183
 
    * ``bzr help commands`` output is now shorter (Aaron Bentley)
184
 
 
185
 
    * New connection: ``bzr+http://`` which supports tunnelling the smart
186
 
      protocol over an HTTP connection. If writing is enabled on the bzr
187
 
      server, then you can write over the http connection.
188
 
      (Andrew Bennetts)
189
 
 
190
 
    * ``bzr`` now uses lazy importing to reduce the startup time. This has
191
 
      a moderate effect on lots of actions, especially ones that have
192
 
      little to do. For example ``bzr rocks`` time is down to 116ms from
193
 
      283ms. (John Arbash Meinel)
194
 
 
195
 
    * New Registry class to provide name-to-object registry-like support,
196
 
      for example for schemes where plugins can register new classes to
197
 
      do certain tasks (e.g. log formatters). Also provides lazy registration
198
 
      to allow modules to be loaded on request. (John Arbash Meinel, Adeodato
199
 
      Simó)
200
 
 
201
 
  API INCOMPATABILITY:
202
 
  
203
 
    * LogFormatter subclasses show now expect the 'revno' parameter to 
204
 
      show() to be a string rather than an int. (Robert Collins)
205
 
 
206
 
  INTERNALS:
207
 
 
208
 
    * ``TestCase.run_bzr``, ``run_bzr_captured``, and ``run_bzr_subprocess``
209
 
      can take a ``working_dir='foo'`` parameter, which will change directory 
210
 
      for the command. (John Arbash Meinel)
211
 
 
212
 
    * ``bzrlib.lazy_regex.lazy_compile`` can be used to create a proxy
213
 
      around a regex, which defers compilation until first use. 
214
 
      (John Arbash Meinel)
215
 
 
216
 
    * ``TestCase.run_bzr_subprocess`` defaults to supplying the
217
 
      ``--no-plugins`` parameter to ensure test reproducability, and avoid
218
 
      problems with system-wide installed plugins. (John Arbash Meinel)
219
 
 
220
 
    * Unique tree root ids are now supported. Newly created trees still
221
 
      use the common root id for compatibility with bzr versions before 0.12.
222
 
      (Aaron Bentley)
223
 
 
224
 
    * ``WorkingTree.set_root_id(None)`` is now deprecated. Please
225
 
      pass in inventory.ROOT_ID if you want the default root id value.
226
 
      (Robert Collins, John Arbash Meinel)
227
 
 
228
 
    * New method ``WorkingTree.flush()`` which will write the current memory
229
 
      inventory out to disk. At the same time, read_working_inventory will
230
 
      no longer trash the current tree inventory if it has been modified within
231
 
      the current lock, and the tree will now ``flush()`` automatically on
232
 
      ``unlock()``. ``WorkingTree.set_root_id()`` has been updated to take
233
 
      advantage of this functionality. (Robert Collins, John Arbash Meinel)
234
 
 
235
 
    * ``bzrlib.tsort.merge_sorted`` now accepts ``generate_revnos``. This
236
 
      parameter will cause it to add another column to its output, which
237
 
      contains the dotted-decimal revno for each revision, as a tuple.
238
 
      (Robert Collins)
239
 
 
240
 
    * ``LogFormatter.show_merge`` is deprecated in favour of
241
 
      ``LogFormatter.show_merge_revno``. (Robert Collins)
242
 
 
243
 
  BUG FIXES:
244
 
 
245
 
    * Avoid circular imports by creating a deprecated function for
246
 
      ``bzrlib.tree.RevisionTree``. Callers should have been using
247
 
      ``bzrlib.revisontree.RevisionTree`` anyway. (John Arbash Meinel,
248
 
      #63360, #66349)
249
 
 
250
 
    * Don't use ``socket.MSG_WAITALL`` as it doesn't exist on all
251
 
      platforms. (Martin Pool, #66356)
252
 
 
253
 
    * Don't require ``Content-Type`` in range responses. Assume they are a
254
 
      single range if ``Content-Type`` does not exist.
255
 
      (John Arbash Meinel, #62473)
256
 
 
257
 
    * bzr branch/pull no longer complain about progress bar cleanup when
258
 
      interrupted during fetch.  (Aaron Bentley, #54000)
259
 
 
260
 
    * ``WorkingTree.set_parent_trees()`` uses the trees to directly write
261
 
      the basis inventory, rather than going through the repository. This
262
 
      allows us to have 1 inventory read, and 2 inventory writes when
263
 
      committing a new tree. (John Arbash Meinel)
264
 
 
265
 
    * When reverting, files that are not locally modified that do not exist
266
 
      in the target are deleted, not just unversioned (Aaron Bentley)
267
 
 
268
 
    * When trying to acquire a lock, don't fail immediately. Instead, try
269
 
      a few times (up to 1 hour) before timing out. Also, report why the
270
 
      lock is unavailable (John Arbash Meinel, #43521, #49556)
271
 
 
272
 
    * Leave HttpTransportBase daughter classes decides how they
273
 
      implement cloning. (Vincent Ladeuil, #61606)
274
 
 
275
 
    * diff3 does not indicate conflicts on clean merge. (Aaron Bentley)
276
 
 
277
 
    * If a commit fails, the commit message is stored in a file at the root of
278
 
      the tree for later commit. (Cheuksan Edward Wang, Stefan Metzmacher,
279
 
      #32054)
280
 
 
281
 
  TESTING:
282
 
 
283
 
    * New test base class TestCaseWithMemoryTransport offers memory-only
284
 
      testing facilities: its not suitable for tests that need to mutate disk
285
 
      state, but most tests should not need that and should be converted to
286
 
      TestCaseWithMemoryTransport. (Robert Collins)
287
 
 
288
 
    * ``TestCase.make_branch_and_memory_tree`` now takes a format
289
 
      option to set the BzrDir, Repository and Branch formats of the
290
 
      created objects. (Robert Collins, John Arbash Meinel)
291
 
 
292
 
bzr 0.11  2006-10-02
293
 
 
294
 
    * Smart server transport test failures on windows fixed. (Lukáš Lalinský).
295
 
 
296
 
bzr 0.11rc2  2006-09-27
297
 
 
298
 
  BUG FIXES:
299
 
 
300
 
    * Test suite hangs on windows fixed. (Andrew Bennets, Alexander Belchenko).
301
 
    
302
 
    * Commit performance regression fixed. (Aaron Bentley, Robert Collins, John
303
 
      Arbash Meinel).
304
 
 
305
 
bzr 0.11rc1  2006-09-25
306
 
 
307
 
  IMPROVEMENTS:
308
 
 
309
 
    * Knit files now wait to create their contents until the first data is
310
 
      added. The old code used to create an empty .knit and a .kndx with just
311
 
      the header. However, this caused a lot of extra round trips over sftp.
312
 
      This can change the time for ``bzr push`` to create a new remote branch
313
 
      from 160s down to 100s. This also affects ``bzr commit`` performance when
314
 
      adding new files, ``bzr commit`` on a new kernel-like tree drops from 50s
315
 
      down to 40s (John Arbash Meinel, #44692)
316
 
 
317
 
    * When an entire subtree has been deleted, commit will now report that
318
 
      just the top of the subtree has been deleted, rather than reporting
319
 
      all the individual items. (Robert Collins)
320
 
 
321
 
    * Commit performs one less XML parse. (Robert Collins)
322
 
 
323
 
    * ``bzr checkout`` now operates on readonly branches as well
324
 
      as readwrite branches. This fixes bug #39542. (Robert Collins)
325
 
 
326
 
    * ``bzr bind`` no longer synchronises history with the master branch.
327
 
      Binding should be followed by an update or push to synchronise the 
328
 
      two branches. This is closely related to the fix for bug #39542.
329
 
      (Robert Collins)
330
 
 
331
 
    * ``bzrlib.lazy_import.lazy_import`` function to create on-demand 
332
 
      objects.  This allows all imports to stay at the global scope, but
333
 
      modules will not actually be imported if they are not used.
334
 
      (John Arbash Meinel)
335
 
 
336
 
    * Support bzr:// and bzr+ssh:// urls to work with the new RPC-based
337
 
      transport which will be used with the upcoming high-performance smart
338
 
      server. The new command ``bzr serve`` will invoke bzr in server mode,
339
 
      which processes these requests. (Andrew Bennetts, Robert Collins, Martin
340
 
      Pool)
341
 
 
342
 
    * New command ``bzr version-info`` which can be used to get a summary
343
 
      of the current state of the tree. This is especially useful as part
344
 
      of a build commands. See ``doc/version_info.txt`` for more information 
345
 
      (John Arbash Meinel)
346
 
 
347
 
  BUG FIXES:
348
 
 
349
 
    * 'bzr inventory [FILE...]' allows restricting the file list to a
350
 
      specific set of files. (John Arbash Meinel, #3631)
351
 
 
352
 
    * Don't abort when annotating empty files (John Arbash Meinel, #56814)
353
 
 
354
 
    * Add ``Stanza.to_unicode()`` which can be passed to another Stanza
355
 
      when nesting stanzas. Also, add ``read_stanza_unicode`` to handle when
356
 
      reading a nested Stanza. (John Arbash Meinel)
357
 
 
358
 
    * Transform._set_mode() needs to stat the right file. 
359
 
      (John Arbash Meinel, #56549)
360
 
 
361
 
    * Raise WeaveFormatError rather than StopIteration when trying to read
362
 
      an empty Weave file. (John Arbash Meinel, #46871)
363
 
 
364
 
    * Don't access e.code for generic URLErrors, only HTTPErrors have .code.
365
 
      (Vincent Ladeuil, #59835)
366
 
 
367
 
    * Handle boundary="" lines properly to allow access through a Squid proxy.
368
 
      (John Arbash Meinel, #57723)
369
 
 
370
 
    * revert now removes newly-added directories (Aaron Bentley, #54172)
371
 
 
372
 
    * ``bzr upgrade sftp://`` shouldn't fail to upgrade v6 branches if there 
373
 
      isn't a working tree. (David Allouche, #40679)
374
 
 
375
 
    * Give nicer error messages when a user supplies an invalid --revision
376
 
      parameter. (John Arbash Meinel, #55420)
377
 
 
378
 
    * Handle when LANG is not recognized by python. Emit a warning, but
379
 
      just revert to using 'ascii'. (John Arbash Meinel, #35392)
380
 
 
381
 
    * Don't use preexec_fn on win32, as it is not supported by subprocess.
382
 
      (John Arbash Meinel)
383
 
 
384
 
    * Skip specific tests when the dependencies aren't met. This includes
385
 
      some ``setup.py`` tests when ``python-dev`` is not available, and
386
 
      some tests that depend on paramiko. (John Arbash Meinel, Mattheiu Moy)
387
 
 
388
 
    * Fallback to Paramiko properly, if no ``ssh`` executable exists on
389
 
      the system. (Andrew Bennetts, John Arbash Meinel)
390
 
 
391
 
    * ``Branch.bind(other_branch)`` no longer takes a write lock on the
392
 
      other branch, and will not push or pull between the two branches.
393
 
      API users will need to perform a push or pull or update operation if they
394
 
      require branch synchronisation to take place. (Robert Collins, #47344)
395
 
 
396
 
    * When creating a tarball or zipfile export, export unicode names as utf-8
397
 
      paths. This may not work perfectly on all platforms, but has the best
398
 
      chance of working in the common case. (John Arbash Meinel, #56816)
399
 
 
400
 
    * When committing, only files that exist in working tree or basis tree
401
 
      may be specified (Aaron Bentley, #50793)
402
 
 
403
 
  PORTABILITY:
404
 
 
405
 
    * Fixes to run on Python 2.5 (Brian M. Carlson, Martin Pool, Marien Zwart)
406
 
 
407
 
  INTERNALS:
408
 
 
409
 
    * TestCaseInTempDir now creates a separate directory for HOME, rather
410
 
      than having HOME set to the same location as the working directory.
411
 
      (John Arbash Meinel)
412
 
 
413
 
    * run_bzr_subprocess() can take an optional 'env_changes={}' parameter,
414
 
      which will update os.environ inside the spawned child. It also can
415
 
      take a 'universal_newlines=True', which helps when checking the output
416
 
      of the command. (John Arbash Meinel)
417
 
 
418
 
    * Refactor SFTP vendors to allow easier re-use when ssh is used. 
419
 
      (Andrew Bennetts)
420
 
 
421
 
    * Transport.list_dir() and Transport.iter_files_recursive() should always
422
 
      return urlescaped paths. This is now tested (there were bugs in a few
423
 
      of the transports) (Andrew Bennetts, David Allouche, John Arbash Meinel)
424
 
 
425
 
    * New utility function symbol_versioning.deprecation_string. Returns the
426
 
      formatted string for a callable, deprecation format pair. (Robert Collins)
427
 
 
428
 
    * New TestCase helper applyDeprecated. This allows you to call a callable
429
 
      which is deprecated without it spewing to the screen, just by supplying
430
 
      the deprecation format string issued for it. (Robert Collins)
431
 
 
432
 
    * Transport.append and Transport.put have been deprecated in favor of
433
 
      .append_bytes, .append_file, .put_bytes, and .put_file. This removes the
434
 
      ambiguity in what type of object the functions take.
435
 
      Transport.non_atomic_put_{bytes,file} has also been added. Which works
436
 
      similarly to Transport.append() except for SFTP, it doesn't have a round
437
 
      trip when opening the file. Also, it provides functionality for creating
438
 
      a parent directory when trying to create a file, rather than raise
439
 
      NoSuchFile and forcing the caller to repeat their request.
440
 
      (John Arbash Meinel)
441
 
 
442
 
    * WorkingTree has a new api ``unversion`` which allow the unversioning of
443
 
      entries by their file id. (Robert Collins)
444
 
 
445
 
    * WorkingTree.pending_merges is deprecated.  Please use the get_parent_ids
446
 
      (introduced in 0.10) method instead. (Robert Collins)
447
 
 
448
 
    * WorkingTree has a new lock_tree_write method which locks the branch for
449
 
      read rather than write. This is appropriate for actions which only need
450
 
      the branch data for reference rather than mutation. A new decorator
451
 
      needs_tree_write_lock is provided in the workingtree module. Like the
452
 
      needs_read_lock and needs_write_lock decorators this allows static 
453
 
      declaration of the locking requirements of a function to ensure that
454
 
      a lock is taken out for casual scripts. (Robert Collins, #54107)
455
 
 
456
 
    * All WorkingTree methods which write to the tree, but not to the branch
457
 
      have been converted to use ``needs_tree_write_lock`` rather than 
458
 
      ``needs_write_lock``. Also converted is the revert, conflicts and tree
459
 
      transform modules. This provides a modest performance improvement on 
460
 
      metadir style trees, due to the reduce lock-acquisition, and a more
461
 
      significant performance improvement on lightweight checkouts from 
462
 
      remote branches, where trivial operations used to pay a significant 
463
 
      penalty. It also provides the basis for allowing readonly checkouts.
464
 
      (Robert Collins)
465
 
 
466
 
    * Special case importing the standard library 'copy' module. This shaves
467
 
      off 40ms of startup time, while retaining compatibility. See:
468
 
      ``bzrlib/inspect_for_copy.py`` for more details. (John Arbash Meinel)
469
 
 
470
 
    * WorkingTree has a new parent class MutableTree which represents the 
471
 
      specialisations of Tree which are able to be altered. (Robert Collins)
472
 
 
473
 
    * New methods mkdir and put_file_bytes_non_atomic on MutableTree that
474
 
      mutate the tree and its contents. (Robert Collins)
475
 
 
476
 
    * Transport behaviour at the root of the URL is now defined and tested.
477
 
      (Andrew Bennetts, Robert Collins)
478
 
 
479
 
  TESTING:
480
 
 
481
 
    * New test helper classs MemoryTree. This is typically accessed via
482
 
      ``self.make_branch_and_memory_tree()`` in test cases. (Robert Collins)
483
 
      
484
 
    * Add start_bzr_subprocess and stop_bzr_subprocess to allow test code to
485
 
      continue running concurrently with a subprocess of bzr. (Andrew Bennetts,
486
 
      Robert Collins)
487
 
 
488
 
    * Add a new method ``Transport.get_smart_client()``. This is provided to
489
 
      allow upgrades to a richer interface than the VFS one provided by
490
 
      Transport. (Andrew Bennetts, Martin Pool)
491
 
 
492
 
bzr 0.10  2006-08-29
493
 
  
494
 
  IMPROVEMENTS:
495
 
    * 'merge' now takes --uncommitted, to apply uncommitted changes from a
496
 
      tree.  (Aaron Bentley)
497
 
  
498
 
    * 'bzr add --file-ids-from' can be used to specify another path to use
499
 
      for creating file ids, rather than generating all new ones. Internally,
500
 
      the 'action' passed to smart_add_tree() can return file_ids that
501
 
      will be used, rather than having bzrlib generate new ones.
502
 
      (John Arbash Meinel, #55781)
503
 
 
504
 
    * ``bzr selftest --benchmark`` now allows a ``--cache-dir`` parameter.
505
 
      This will cache some of the intermediate trees, and decrease the
506
 
      setup time for benchmark tests. (John Arbash Meinel)
507
 
 
508
 
    * Inverse forms are provided for all boolean options.  For example,
509
 
      --strict has --no-strict, --no-recurse has --recurse (Aaron Bentley)
510
 
 
511
 
    * Serialize out Inventories directly, rather than using ElementTree.
512
 
      Writing out a kernel sized inventory drops from 2s down to ~350ms.
513
 
      (Robert Collins, John Arbash Meinel)
514
 
 
515
 
  BUG FIXES:
516
 
 
517
 
    * Help diffutils 2.8.4 get along with binary tests (Marien Zwart: #57614)
518
 
 
519
 
    * Change LockDir so that if the lock directory doesn't exist when
520
 
      lock_write() is called, an attempt will be made to create it.
521
 
      (John Arbash Meinel, #56974)
522
 
 
523
 
    * ``bzr uncommit`` preserves pending merges. (John Arbash Meinel, #57660)
524
 
 
525
 
    * Active FTP transport now works as intended. (ghozzy, #56472)
526
 
 
527
 
    * Really fix mutter() so that it won't ever raise a UnicodeError.
528
 
      It means it is possible for ~/.bzr.log to contain non UTF-8 characters.
529
 
      But it is a debugging log, not a real user file.
530
 
      (John Arbash Meinel, #56947, #53880)
531
 
 
532
 
    * Change Command handle to allow Unicode command and options.
533
 
      At present we cannot register Unicode command names, so we will get
534
 
      BzrCommandError('unknown command'), or BzrCommandError('unknown option')
535
 
      But that is better than a UnicodeError + a traceback.
536
 
      (John Arbash Meinel, #57123)
537
 
 
538
 
    * Handle TZ=UTC properly when reading/writing revisions.
539
 
      (John Arbash Meinel, #55783, #56290)
540
 
 
541
 
    * Use GPG_TTY to allow gpg --cl to work with gpg-agent in a pipeline,
542
 
      (passing text to sign in on stdin). (John Arbash Meinel, #54468)
543
 
 
544
 
    * External diff does the right thing for binaries even in foreign 
545
 
      languages. (John Arbash Meinel, #56307)
546
 
 
547
 
    * Testament handles more cases when content is unicode. Specific bug was
548
 
      in handling of revision properties. (John Arbash Meinel, Holger Krekel,
549
 
      #54723)
550
 
 
551
 
    * The bzr selftest was failing on installed versions due to a bug in a new
552
 
      test helper. (John Arbash Meinel, Robert Collins, #58057)
553
 
 
554
 
  INTERNALS:
555
 
 
556
 
    * ``bzrlib.cache_utf8`` contains ``encode()`` and ``decode()`` functions
557
 
      which can be used to cache the conversion between utf8 and Unicode.
558
 
      Especially helpful for some of the knit annotation code, which has to
559
 
      convert revision ids to utf8 to annotate lines in storage.
560
 
      (John Arbash Meinel)
561
 
 
562
 
    * ``setup.py`` now searches the filesystem to find all packages which
563
 
      need to be installed. This should help make the life of packagers
564
 
      easier. (John Arbash Meinel)
565
 
 
566
 
bzr 0.9.0  2006-08-11
567
 
 
568
 
  SURPRISES:
569
 
 
570
 
   * The hard-coded built-in ignore rules have been removed. There are
571
 
     now two rulesets which are enforced. A user global one in 
572
 
     ~/.bazaar/ignore which will apply to every tree, and the tree
573
 
     specific one '.bzrignore'.
574
 
     ~/.bazaar/ignore will be created if it does not exist, but with
575
 
     a more conservative list than the old default.
576
 
     This fixes bugs with default rules being enforced no matter what. 
577
 
     The old list of ignore rules from bzr is available by
578
 
     running 'bzr ignore --old-default-rules'.
579
 
     (Robert Collins, Martin Pool, John Arbash Meinel)
580
 
 
581
 
   * 'branches.conf' has been changed to 'locations.conf', since it can apply
582
 
     to more locations than just branch locations.
583
 
     (Aaron Bentley)
584
 
   
585
 
  IMPROVEMENTS:
586
 
 
587
 
   * The revision specifier "revno:" is extended to accept the syntax
588
 
     revno:N:branch. For example,
589
 
     revno:42:http://bazaar-vcs.org/bzr/bzr.dev/ means revision 42 in
590
 
     bzr.dev.  (Matthieu Moy)
591
 
 
592
 
   * Tests updates to ensure proper URL handling, UNICODE support, and
593
 
     proper printing when the user's terminal encoding cannot display 
594
 
     the path of a file that has been versioned.
595
 
     ``bzr branch`` can take a target URL rather than only a local directory.
596
 
     Branch.get_parent()/set_parent() now save a relative path if possible,
597
 
     and normalize the parent based on root, allowing access across
598
 
     different transports. (John Arbash Meinel, Wouter van Heyst, Martin Pool)
599
 
     (Malone #48906, #42699, #40675, #5281, #3980, #36363, #43689,
600
 
      #42517, #42514)
601
 
 
602
 
   * On Unix, detect terminal width using an ioctl not just $COLUMNS.
603
 
     Use terminal width for single-line logs from ``bzr log --line`` and
604
 
     pending-merge display.  (Robert Widhopf-Fenk, Gustavo Niemeyer)
605
 
     (Malone #3507)
606
 
 
607
 
   * On Windows, detect terminal width using GetConsoleScreenBufferInfo.
608
 
     (Alexander Belchenko)
609
 
 
610
 
   * Speedup improvement for 'date:'-revision search. (Guillaume Pinot).
611
 
 
612
 
   * Show the correct number of revisions pushed when pushing a new branch.
613
 
     (Robert Collins).
614
 
 
615
 
   * 'bzr selftest' now shows a progress bar with the number of tests, and 
616
 
     progress made. 'make check' shows tests in -v mode, to be more useful
617
 
     for the PQM status window. (Robert Collins).
618
 
     When using a progress bar, failed tests are printed out, rather than
619
 
     being overwritten by the progress bar until the suite finishes.
620
 
     (John Arbash Meinel)
621
 
 
622
 
   * 'bzr selftest --benchmark' will run a new benchmarking selftest.
623
 
     'bzr selftest --benchmark --lsprof-timed' will use lsprofile to generate
624
 
     profile data for the individual profiled calls, allowing for fine
625
 
     grained analysis of performance.
626
 
     (Robert Collins, Martin Pool).
627
 
 
628
 
   * 'bzr commit' shows a progress bar. This is useful for commits over sftp
629
 
     where commit can take an appreciable time. (Robert Collins)
630
 
 
631
 
   * 'bzr add' is now less verbose in telling you what ignore globs were
632
 
     matched by files being ignored. Instead it just tells you how many 
633
 
     were ignored (because you might reasonably be expecting none to be
634
 
     ignored). 'bzr add -v' is unchanged and will report every ignored
635
 
     file. (Robert Collins).
636
 
 
637
 
   * ftp now has a test server if medusa is installed. As part of testing,
638
 
     ftp support has been improved, including support for supplying a
639
 
     non-standard port. (John Arbash Meinel).
640
 
 
641
 
   * 'bzr log --line' shows the revision number, and uses only the
642
 
     first line of the log message (#5162, Alexander Belchenko;
643
 
     Matthieu Moy)
644
 
 
645
 
   * 'bzr status' has had the --all option removed. The 'bzr ls' command
646
 
     should be used to retrieve all versioned files. (Robert Collins)
647
 
 
648
 
   * 'bzr bundle OTHER/BRANCH' will create a bundle which can be sent
649
 
     over email, and applied on the other end, while maintaining ancestry.
650
 
     This bundle can be applied with either 'bzr merge' or 'bzr pull',
651
 
     the same way you would apply another branch.
652
 
     (John Arbash Meinel, Aaron Bentley)
653
 
  
654
 
   * 'bzr whoami' can now be used to set your identity from the command line,
655
 
     for a branch or globally.  (Robey Pointer)
656
 
 
657
 
   * 'bzr checkout' now aliased to 'bzr co', and 'bzr annotate' to 'bzr ann'.
658
 
     (Michael Ellerman)
659
 
 
660
 
   * 'bzr revert DIRECTORY' now reverts the contents of the directory as well.
661
 
     (Aaron Bentley)
662
 
 
663
 
   * 'bzr get sftp://foo' gives a better error when paramiko is not present.
664
 
     Also updates things like 'http+pycurl://' if pycurl is not present.
665
 
     (John Arbash Meinel) (Malone #47821, #52204)
666
 
 
667
 
   * New env variable BZR_PROGRESS_BAR, sets the default progress bar type.
668
 
     Can be set to 'none' or 'dummy' to disable the progress bar, 'dots' or 
669
 
     'tty' to create the respective type. (John Arbash Meinel, #42197, #51107)
670
 
 
671
 
   * Improve the help text for 'bzr diff' to explain what various options do.
672
 
     (John Arbash Meinel, #6391)
673
 
 
674
 
   * 'bzr uncommit -r 10' now uncommits revisions 11.. rather than uncommitting
675
 
     revision 10. This makes -r10 more in line with what other commands do.
676
 
     'bzr uncommit' also now saves the pending merges of the revisions that
677
 
     were removed. So it is safe to uncommit after a merge, fix something,
678
 
     and commit again. (John Arbash Meinel, #32526, #31426)
679
 
 
680
 
   * 'bzr init' now also works on remote locations.
681
 
     (Wouter van Heyst, #48904)
682
 
 
683
 
   * HTTP support has been updated. When using pycurl we now support 
684
 
     connection keep-alive, which reduces dns requests and round trips.
685
 
     And for both urllib and pycurl we support multi-range requests, 
686
 
     which decreases the number of round-trips. Performance results for
687
 
     ``bzr branch http://bazaar-vcs.org/bzr/bzr.dev/`` indicate
688
 
     http branching is now 2-3x faster, and ``bzr pull`` in an existing 
689
 
     branch is as much as 4x faster.
690
 
     (Michael Ellerman, Johan Rydberg, John Arbash Meinel, #46768)
691
 
 
692
 
   * Performance improvements for sftp. Branching and pulling are now up to
693
 
     2x faster. Utilize paramiko.readv() support for async requests if it
694
 
     is available (paramiko > 1.6) (John Arbash Meinel)
695
 
 
696
 
  BUG FIXES:
697
 
 
698
 
    * Fix shadowed definition of TestLocationConfig that caused some 
699
 
      tests not to run.  (#32587, Erik Bågfors, Michael Ellerman, 
700
 
      Martin Pool)
701
 
 
702
 
    * Fix unnecessary requirement of sign-my-commits that it be run from
703
 
      a working directory.  (Martin Pool, Robert Collins)
704
 
 
705
 
    * 'bzr push location' will only remember the push location if it succeeds
706
 
      in connecting to the remote location. (#49742, John Arbash Meinel)
707
 
 
708
 
    * 'bzr revert' no longer toggles the executable bit on win32
709
 
      (#45010, John Arbash Meinel)
710
 
 
711
 
    * Handle broken pipe under win32 correctly. (John Arbash Meinel)
712
 
    
713
 
    * sftp tests now work correctly on win32 if you have a newer paramiko
714
 
      (John Arbash Meinel)
715
 
 
716
 
    * Cleanup win32 test suite, and general cleanup of places where
717
 
      file handles were being held open. (John Arbash Meinel)
718
 
 
719
 
    * When specifying filenames for 'diff -r x..y', the name of the file in the
720
 
      working directory can be used, even if its name is different in both x
721
 
      and y.
722
 
 
723
 
    * File-ids containing single- or double-quotes are handled correctly by
724
 
      push.  (#52227, Aaron Bentley)
725
 
 
726
 
    * Normalize unicode filenames to ensure cross-platform consistency.
727
 
      (John Arbash Meinel, #43689)
728
 
 
729
 
    * The argument parser can now handle '-' as an argument. Currently
730
 
      no code interprets it specially (it is mostly handled as a file named 
731
 
      '-'). But plugins, and future operations can use it.
732
 
      (John Arbash meinel, #50984)
733
 
 
734
 
    * Bundles can properly read binary files with a plain '\r' in them.
735
 
      (John Arbash Meinel, #51927)
736
 
 
737
 
    * Tuning iter_entries() to be more efficient (John Arbash Meinel, #5444)
738
 
 
739
 
    * Lots of win32 fixes (the test suite passes again).
740
 
      (John Arbash Meinel, #50155)
741
 
 
742
 
    * Handle openbsd returning None for sys.getfilesystemencoding() (#41183) 
743
 
 
744
 
    * Support ftp APPE (append) to allow Knits to be used over ftp (#42592)
745
 
 
746
 
    * Removals are only committed if they match the filespec (or if there is
747
 
      no filespec).  (#46635, Aaron Bentley)
748
 
 
749
 
    * smart-add recurses through all supplied directories 
750
 
      (John Arbash Meinel, #52578)
751
 
 
752
 
    * Make the bundle reader extra lines before and after the bundle text.
753
 
      This allows you to parse an email with the bundle inline.
754
 
      (John Arbash Meinel, #49182)
755
 
 
756
 
    * Change the file id generator to squash a little bit more. Helps when
757
 
      working with long filenames on windows. (Also helps for unicode filenames
758
 
      not generating hidden files). (John Arbash Meinel, #43801)
759
 
 
760
 
    * Restore terminal mode on C-c while reading sftp password.  (#48923, 
761
 
      Nicholas Allen, Martin Pool)
762
 
 
763
 
    * Timestamps are rounded to 1ms, and revision entries can be recreated
764
 
      exactly. (John Arbash Meinel, Jamie Wilkinson, #40693)
765
 
 
766
 
    * Branch.base has changed to a URL, but ~/.bazaar/locations.conf should
767
 
      use local paths, since it is user visible (John Arbash Meinel, #53653)
768
 
 
769
 
    * ``bzr status foo`` when foo was unversioned used to cause a full delta
770
 
      to be generated (John Arbash Meinel, #53638)
771
 
 
772
 
    * When reading revision properties, an empty value should be considered
773
 
      the empty string, not None (John Arbash Meinel, #47782)
774
 
 
775
 
    * ``bzr diff --diff-options`` can now handle binary files being changed.
776
 
      Also, the output is consistent when --diff-options is not supplied.
777
 
      (John Arbash Meinel, #54651, #52930)
778
 
 
779
 
    * Use the right suffixes for loading plugins (John Arbash Meinel, #51810)
780
 
 
781
 
    * Fix Branch.get_parent() to handle the case when the parent is not 
782
 
      accessible (John Arbash Meinel, #52976)
783
 
 
784
 
  INTERNALS:
785
 
 
786
 
    * Combine the ignore rules into a single regex rather than looping over
787
 
      them to reduce the threshold where  N^2 behaviour occurs in operations
788
 
      like status. (Jan Hudec, Robert Collins).
789
 
 
790
 
    * Appending to bzrlib.DEFAULT_IGNORE is now deprecated. Instead, use
791
 
      one of the add functions in bzrlib.ignores. (John Arbash Meinel)
792
 
 
793
 
    * 'bzr push' should only push the ancestry of the current revision, not
794
 
      all of the history in the repository. This is especially important for
795
 
      shared repositories. (John Arbash Meinel)
796
 
 
797
 
    * bzrlib.delta.compare_trees now iterates in alphabetically sorted order,
798
 
      rather than randomly walking the inventories. (John Arbash Meinel)
799
 
 
800
 
    * Doctests are now run in temporary directories which are cleaned up when
801
 
      they finish, rather than using special ScratchDir/ScratchBranch objects.
802
 
      (Martin Pool)
803
 
 
804
 
    * Split ``check`` into separate methods on the branch and on the repository,
805
 
      so that it can be specialized in ways that are useful or efficient for
806
 
      different formats.  (Martin Pool, Robert Collins)
807
 
 
808
 
    * Deprecate Repository.all_revision_ids; most methods don't really need
809
 
      the global revision graph but only that part leading up to a particular
810
 
      revision.  (Martin Pool, Robert Collins)
811
 
 
812
 
    * Add a BzrDirFormat control_formats list which allows for control formats
813
 
      that do not use '.bzr' to store their data - i.e. '.svn', '.hg' etc.
814
 
      (Robert Collins, Jelmer Vernooij).
815
 
 
816
 
    * bzrlib.diff.external_diff can be redirected to any file-like object.
817
 
      Uses subprocess instead of spawnvp.
818
 
      (#4047, #48914, James Henstridge, John Arbash Meinel)
819
 
 
820
 
    * New command line option '--profile-imports', which will install a custom
821
 
      importer to log time to import modules and regex compilation time to 
822
 
      sys.stderr (John Arbash Meinel)
823
 
 
824
 
    * 'EmptyTree' is now deprecated, please use repository.revision_tree(None)
825
 
      instead. (Robert Collins)
826
 
 
827
 
    * "RevisionTree" is now in bzrlib/revisiontree.py. (Robert Collins)
828
 
 
829
 
bzr 0.8.2  2006-05-17
830
 
  
831
 
  BUG FIXES:
832
 
   
833
 
    * setup.py failed to install launchpad plugin.  (Martin Pool)
834
 
 
835
 
bzr 0.8.1  2006-05-16
836
 
 
837
 
  BUG FIXES:
838
 
 
839
 
    * Fix failure to commit a merge in a checkout.  (Martin Pool, 
840
 
      Robert Collins, Erik Bågfors, #43959)
841
 
 
842
 
    * Nicer messages from 'commit' in the case of renames, and correct
843
 
      messages when a merge has occured. (Robert Collins, Martin Pool)
844
 
 
845
 
    * Separate functionality from assert statements as they are skipped in
846
 
      optimized mode of python. Add the same check to pending merges.
847
 
      (#44443, Olaf Conradi)
848
 
 
849
 
  CHANGES:
850
 
 
851
 
    * Do not show the None revision in output of bzr ancestry. (Olaf Conradi)
852
 
 
853
 
    * Add info on standalone branches without a working tree.
854
 
      (#44155, Olaf Conradi)
855
 
 
856
 
    * Fix bug in knits when raising InvalidRevisionId. (#44284, Olaf Conradi)
857
 
 
858
 
  CHANGES:
859
 
 
860
 
    * Make editor invocation comply with Debian Policy. First check
861
 
      environment variables VISUAL and EDITOR, then try editor from
862
 
      alternatives system. If that all fails, fall back to the pre-defined
863
 
      list of editors. (#42904, Olaf Conradi)
864
 
 
865
 
  NEW FEATURES:
866
 
 
867
 
    * New 'register-branch' command registers a public branch into 
868
 
      Launchpad.net, where it can be associated with bugs, etc.
869
 
      (Martin Pool, Bjorn Tillenius, Robert Collins)
870
 
 
871
 
  INTERNALS:
872
 
 
873
 
    * New public api in InventoryEntry - 'describe_change(old, new)' which
874
 
      provides a human description of the changes between two old and
875
 
      new. (Robert Collins, Martin Pool)
876
 
 
877
 
  TESTING:
878
 
 
879
 
    * Fix test case for bzr info in upgrading a standalone branch to metadir,
880
 
      uses bzrlib api now. (Olaf Conradi)
881
 
 
882
 
bzr 0.8  2006-05-08
883
 
 
884
 
  NOTES WHEN UPGRADING:
885
 
 
886
 
    Release 0.8 of bzr introduces a new format for history storage, called
887
 
    'knit', as an evolution of to the 'weave' format used in 0.7.  Local 
888
 
    and remote operations are faster using knits than weaves.  Several
889
 
    operations including 'init', 'init-repo', and 'upgrade' take a 
890
 
    --format option that controls this.  Branching from an existing branch
891
 
    will keep the same format.
892
 
 
893
 
    It is possible to merge, pull and push between branches of different
894
 
    formats but this is slower than moving data between homogenous
895
 
    branches.  It is therefore recommended (but not required) that you
896
 
    upgrade all branches for a project at the same time.  Information on
897
 
    formats is shown by 'bzr info'.
898
 
 
899
 
    bzr 0.8 now allows creation of 'repositories', which hold the history 
900
 
    of files and revisions for several branches.  Previously bzr kept all
901
 
    the history for a branch within the .bzr directory at the root of the
902
 
    branch, and this is still the default.  To create a repository, use
903
 
    the new 'bzr init-repo' command.  Branches exist as directories under
904
 
    the repository and contain just a small amount of information
905
 
    indicating the current revision of the branch.
906
 
 
907
 
    bzr 0.8 also supports 'checkouts', which are similar to in cvs and
908
 
    subversion.  Checkouts are associated with a branch (optionally in a
909
 
    repository), which contains all the historical information.  The
910
 
    result is that a checkout can be deleted without losing any
911
 
    already-committed revisions.  A new 'update' command is also available. 
912
 
 
913
 
    Repositories and checkouts are not supported with the 0.7 storage
914
 
    format.  To use them you must upgrad to either knits, or to the
915
 
    'metaweave' format, which uses weaves but changes the .bzr directory
916
 
    arrangement.
917
 
    
918
 
 
919
 
  IMPROVEMENTS:
920
 
 
921
 
    * Sftp paths can now be relative, or local, according to the lftp
922
 
      convention. Paths now take the form:
923
 
      sftp://user:pass@host:port/~/relative/path
924
 
      or
925
 
      sftp://user:pass@host:port/absolute/path
926
 
 
927
 
    * The FTP transport now tries to reconnect after a temporary
928
 
      failure. ftp put is made atomic. (Matthieu Moy)
929
 
 
930
 
    * The FTP transport now maintains a pool of connections, and
931
 
      reuses them to avoid multiple connections to the same host (like
932
 
      sftp did). (Daniel Silverstone)
933
 
 
934
 
    * The bzr_man.py file has been removed. To create the man page now,
935
 
      use ./generate_docs.py man. The new program can also create other files.
936
 
      Run "python generate_docs.py --help" for usage information. (Hans
937
 
      Ulrich Niedermann & James Blackwell).
938
 
 
939
 
    * Man Page now gives full help (James Blackwell). Help also updated to 
940
 
      reflect user config now being stored in .bazaar (Hans Ulrich
941
 
      Niedermann)
942
 
 
943
 
    * It's now possible to set aliases in bazaar.conf (Erik Bågfors)
944
 
 
945
 
    * Pull now accepts a --revision argument (Erik Bågfors)
946
 
 
947
 
    * 'bzr re-sign' now allows multiple revisions to be supplied on the command
948
 
      line. You can now use the following command to sign all of your old commits.
949
 
        find .bzr/revision-store// -name my@email-* \
950
 
          | sed 's/.*\/\/..\///' \
951
 
          | xargs bzr re-sign
952
 
 
953
 
    * Upgrade can now upgrade over the network. (Robert Collins)
954
 
 
955
 
    * Two new commands 'bzr checkout' and 'bzr update' allow for CVS/SVN-alike
956
 
      behaviour.  By default they will cache history in the checkout, but
957
 
      with --lightweight almost all data is kept in the master branch.
958
 
      (Robert Collins)
959
 
 
960
 
    * 'revert' unversions newly-versioned files, instead of deleting them.
961
 
 
962
 
    * 'merge' is more robust.  Conflict messages have changed.
963
 
 
964
 
    * 'merge' and 'revert' no longer clobber existing files that end in '~' or
965
 
      '.moved'.
966
 
 
967
 
    * Default log format can be set in configuration and plugins can register
968
 
      their own formatters. (Erik Bågfors)
969
 
 
970
 
    * New 'reconcile' command will check branch consistency and repair indexes
971
 
      that can become out of sync in pre 0.8 formats. (Robert Collins,
972
 
      Daniel Silverstone)
973
 
 
974
 
    * New 'bzr init --format' and 'bzr upgrade --format' option to control 
975
 
      what storage format is created or produced.  (Robert Collins, 
976
 
      Martin Pool)
977
 
 
978
 
    * Add parent location to 'bzr info', if there is one.  (Olaf Conradi)
979
 
 
980
 
    * New developer commands 'weave-list' and 'weave-join'.  (Martin Pool)
981
 
 
982
 
    * New 'init-repository' command, plus support for repositories in 'init'
983
 
      and 'branch' (Aaron Bentley, Erik Bågfors, Robert Collins)
984
 
 
985
 
    * Improve output of 'info' command. Show all relevant locations related to
986
 
      working tree, branch and repository. Use kibibytes for binary quantities.
987
 
      Fix off-by-one error in missing revisions of working tree.  Make 'info'
988
 
      work on branches, repositories and remote locations.  Show locations
989
 
      relative to the shared repository, if applicable.  Show locking status
990
 
      of locations.  (Olaf Conradi)
991
 
 
992
 
    * Diff and merge now safely handle binary files. (Aaron Bentley)
993
 
 
994
 
    * 'pull' and 'push' now normalise the revision history, so that any two
995
 
      branches with the same tip revision will have the same output from 'log'.
996
 
      (Robert Collins)
997
 
 
998
 
    * 'merge' accepts --remember option to store parent location, like 'push'
999
 
      and 'pull'. (Olaf Conradi)
1000
 
 
1001
 
    * bzr status and diff when files given as arguments do not exist
1002
 
      in the relevant trees.  (Martin Pool, #3619)
1003
 
 
1004
 
    * Add '.hg' to the default ignore list.  (Martin Pool)
1005
 
 
1006
 
    * 'knit' is now the default disk format. This improves disk performance and
1007
 
      utilization, increases incremental pull performance, robustness with SFTP
1008
 
      and allows checkouts over SFTP to perform acceptably. 
1009
 
      The initial Knit code was contributed by Johan Rydberg based on a
1010
 
      specification by Martin Pool.
1011
 
      (Robert Collins, Aaron Bentley, Johan Rydberg, Martin Pool).
1012
 
 
1013
 
    * New tool to generate all-in-one html version of the manual.  (Alexander
1014
 
      Belchenko)
1015
 
 
1016
 
    * Hitting CTRL-C while doing an SFTP push will no longer cause stale locks
1017
 
      to be left in the SFTP repository. (Robert Collins, Martin Pool).
1018
 
 
1019
 
    * New option 'diff --prefix' to control how files are named in diff
1020
 
      output, with shortcuts '-p0' and '-p1' corresponding to the options for 
1021
 
      GNU patch.  (Alexander Belchenko, Goffredo Baroncelli, Martin Pool)
1022
 
 
1023
 
    * Add --revision option to 'annotate' command.  (Olaf Conradi)
1024
 
 
1025
 
    * If bzr shows an unexpected revision-history after pulling (perhaps due
1026
 
      to a reweave) it can now be corrected by 'bzr reconcile'.
1027
 
      (Robert Collins)
1028
 
 
1029
 
  CHANGES:
1030
 
 
1031
 
    * Commit is now verbose by default, and shows changed filenames and the 
1032
 
      new revision number.  (Robert Collins, Martin Pool)
1033
 
 
1034
 
    * Unify 'mv', 'move', 'rename'.  (#5379, Matthew Fuller)
1035
 
 
1036
 
    * 'bzr -h' shows help.  (#35940, Martin Pool, Ian Bicking)
1037
 
 
1038
 
    * Make 'pull' and 'push' remember location on failure using --remember.
1039
 
      (Olaf Conradi)
1040
 
 
1041
 
    * For compatibility, make old format for using weaves inside metadir
1042
 
      available as 'metaweave' format.  Rename format 'metadir' to 'default'.
1043
 
      Clean up help for option --format in commands 'init', 'init-repo' and
1044
 
      'upgrade'.  (Olaf Conradi)
1045
 
 
1046
 
  INTERNALS:
1047
 
  
1048
 
    * The internal storage of history, and logical branch identity have now
1049
 
      been split into Branch, and Repository. The common locking and file 
1050
 
      management routines are now in bzrlib.lockablefiles. 
1051
 
      (Aaron Bentley, Robert Collins, Martin Pool)
1052
 
 
1053
 
    * Transports can now raise DependencyNotPresent if they need a library
1054
 
      which is not installed, and then another implementation will be 
1055
 
      tried.  (Martin Pool)
1056
 
 
1057
 
    * Remove obsolete (and no-op) `decode` parameter to `Transport.get`.  
1058
 
      (Martin Pool)
1059
 
 
1060
 
    * Using Tree Transform for merge, revert, tree-building
1061
 
 
1062
 
    * WorkingTree.create, Branch.create, WorkingTree.create_standalone,
1063
 
      Branch.initialize are now deprecated. Please see BzrDir.create_* for
1064
 
      replacement API's. (Robert Collins)
1065
 
 
1066
 
    * New BzrDir class represents the .bzr control directory and manages
1067
 
      formatting issues. (Robert Collins)
1068
 
 
1069
 
    * New repository.InterRepository class encapsulates Repository to 
1070
 
      Repository actions and allows for clean selection of optimised code
1071
 
      paths. (Robert Collins)
1072
 
 
1073
 
    * bzrlib.fetch.fetch and bzrlib.fetch.greedy_fetch are now deprecated,
1074
 
      please use 'branch.fetch' or 'repository.fetch' depending on your
1075
 
      needs. (Robert Collins)
1076
 
 
1077
 
    * deprecated methods now have a 'is_deprecated' flag on them that can
1078
 
      be checked, if you need to determine whether a given callable is 
1079
 
      deprecated at runtime. (Robert Collins)
1080
 
 
1081
 
    * Progress bars are now nested - see
1082
 
      bzrlib.ui.ui_factory.nested_progress_bar. (Robert Collins, Robey Pointer)
1083
 
 
1084
 
    * New API call get_format_description() for each type of format.
1085
 
      (Olaf Conradi)
1086
 
 
1087
 
    * Changed branch.set_parent() to accept None to remove parent.
1088
 
      (Olaf Conradi)
1089
 
 
1090
 
    * Deprecated BzrError AmbiguousBase.  (Olaf Conradi)
1091
 
 
1092
 
    * WorkingTree.branch is now a read only property.  (Robert Collins)
1093
 
 
1094
 
    * bzrlib.ui.text.TextUIFactory now accepts a bar_type parameter which
1095
 
      can be None or a factory that will create a progress bar. This is
1096
 
      useful for testing or for overriding the bzrlib.progress heuristic.
1097
 
      (Robert Collins)
1098
 
 
1099
 
    * New API method get_physical_lock_status() to query locks present on a
1100
 
      transport.  (Olaf Conradi)
1101
 
 
1102
 
    * Repository.reconcile now takes a thorough keyword parameter to allow
1103
 
      requesting an indepth reconciliation, rather than just a data-loss 
1104
 
      check. (Robert Collins)
1105
 
 
1106
 
    * bzrlib.ui.ui_factory protocol now supports 'get_boolean' to prompt
1107
 
      the user for yes/no style input. (Robert Collins)
1108
 
 
1109
 
  TESTING:
1110
 
 
1111
 
    * SFTP tests now shortcut the SSH negotiation, reducing test overhead
1112
 
      for testing SFTP protocol support. (Robey Pointer)
1113
 
 
1114
 
    * Branch formats are now tested once per implementation (see bzrlib.
1115
 
      tests.branch_implementations. This is analagous to the transport
1116
 
      interface tests, and has been followed up with working tree,
1117
 
      repository and BzrDir tests. (Robert Collins)
1118
 
 
1119
 
    * New test base class TestCaseWithTransport provides a transport aware
1120
 
      test environment, useful for testing any transport-interface using
1121
 
      code. The test suite option --transport controls the transport used
1122
 
      by this class (when its not being used as part of implementation
1123
 
      contract testing). (Robert Collins)
1124
 
 
1125
 
    * Close logging handler on disabling the test log. This will remove the
1126
 
      handler from the internal list inside python's logging module,
1127
 
      preventing shutdown from closing it twice.  (Olaf Conradi)
1128
 
 
1129
 
    * Move test case for uncommit to blackbox tests.  (Olaf Conradi)
1130
 
 
1131
 
    * run_bzr and run_bzr_captured now accept a 'stdin="foo"' parameter which
1132
 
      will provide String("foo") to the command as its stdin.
1133
 
 
1134
 
bzr 0.7 2006-01-09
1135
 
 
1136
 
  CHANGES:
1137
 
 
1138
 
    * .bzrignore is excluded from exports, on the grounds that it's a bzr 
1139
 
      internal-use file and may not be wanted.  (Jamie Wilkinson)
1140
 
 
1141
 
    * The "bzr directories" command were removed in favor of the new
1142
 
      --kind option to the "bzr inventory" command.  To list all 
1143
 
      versioned directories, now use "bzr inventory --kind directory".  
1144
 
      (Johan Rydberg)
1145
 
 
1146
 
    * Under Windows configuration directory is now %APPDATA%\bazaar\2.0
1147
 
      by default. (John Arbash Meinel)
1148
 
 
1149
 
    * The parent of Bzr configuration directory can be set by BZR_HOME
1150
 
      environment variable. Now the path for it is searched in BZR_HOME, then
1151
 
      in HOME. Under Windows the order is: BZR_HOME, APPDATA (usually
1152
 
      points to C:\Documents and Settings\User Name\Application Data), HOME.
1153
 
      (John Arbash Meinel)
1154
 
 
1155
 
    * Plugins with the same name in different directories in the bzr plugin
1156
 
      path are no longer loaded: only the first successfully loaded one is
1157
 
      used. (Robert Collins)
1158
 
 
1159
 
    * Use systems' external ssh command to open connections if possible.  
1160
 
      This gives better integration with user settings such as ProxyCommand.
1161
 
      (James Henstridge)
1162
 
 
1163
 
    * Permissions on files underneath .bzr/ are inherited from the .bzr 
1164
 
      directory. So for a shared repository, simply doing 'chmod -R g+w .bzr/'
1165
 
      will mean that future file will be created with group write permissions.
1166
 
 
1167
 
    * configure.in and config.guess are no longer in the builtin default 
1168
 
      ignore list.
1169
 
 
1170
 
    * '.sw[nop]' pattern ignored, to ignore vim swap files for nameless
1171
 
      files.  (John Arbash Meinel, Martin Pool)
1172
 
 
1173
 
  IMPROVEMENTS:
1174
 
 
1175
 
    * "bzr INIT dir" now initializes the specified directory, and creates 
1176
 
      it if it does not exist.  (John Arbash Meinel)
1177
 
 
1178
 
    * New remerge command (Aaron Bentley)
1179
 
 
1180
 
    * Better zsh completion script.  (Steve Borho)
1181
 
 
1182
 
    * 'bzr diff' now returns 1 when there are changes in the working 
1183
 
      tree. (Robert Collins)
1184
 
 
1185
 
    * 'bzr push' now exists and can push changes to a remote location. 
1186
 
      This uses the transport infrastructure, and can store the remote
1187
 
      location in the ~/.bazaar/branches.conf configuration file.
1188
 
      (Robert Collins)
1189
 
 
1190
 
    * Test directories are only kept if the test fails and the user requests
1191
 
      that they be kept.
1192
 
 
1193
 
    * Tweaks to short log printing
1194
 
 
1195
 
    * Added branch nicks, new nick command, printing them in log output. 
1196
 
      (Aaron Bentley)
1197
 
 
1198
 
    * If $BZR_PDB is set, pop into the debugger when an uncaught exception 
1199
 
      occurs.  (Martin Pool)
1200
 
 
1201
 
    * Accept 'bzr resolved' (an alias for 'bzr resolve'), as this is
1202
 
      the same as Subversion.  (Martin Pool)
1203
 
 
1204
 
    * New ftp transport support (on ftplib), for ftp:// and aftp:// 
1205
 
      URLs.  (Daniel Silverstone)
1206
 
 
1207
 
    * Commit editor temporary files now start with 'bzr_log.', to allow 
1208
 
      text editors to match the file name and set up appropriate modes or 
1209
 
      settings.  (Magnus Therning)
1210
 
 
1211
 
    * Improved performance when integrating changes from a remote weave.  
1212
 
      (Goffredo Baroncelli)
1213
 
 
1214
 
    * Sftp will attempt to cache the connection, so it is more likely that
1215
 
      a connection will be reused, rather than requiring multiple password
1216
 
      requests.
1217
 
 
1218
 
    * bzr revno now takes an optional argument indicating the branch whose
1219
 
      revno should be printed.  (Michael Ellerman)
1220
 
 
1221
 
    * bzr cat defaults to printing the last version of the file.  
1222
 
      (#3632, Matthieu Moy)
1223
 
 
1224
 
    * New global option 'bzr --lsprof COMMAND' runs bzr under the lsprof 
1225
 
      profiler.  (Denys Duchier)
1226
 
 
1227
 
    * Faster commits by reading only the headers of affected weave files. 
1228
 
      (Denys Duchier)
1229
 
 
1230
 
    * 'bzr add' now takes a --dry-run parameter which shows you what would be
1231
 
      added, but doesn't actually add anything. (Michael Ellerman)
1232
 
 
1233
 
    * 'bzr add' now lists how many files were ignored per glob.  add --verbose
1234
 
      lists the specific files.  (Aaron Bentley)
1235
 
 
1236
 
    * 'bzr missing' now supports displaying changes in diverged trees and can
1237
 
      be limited to show what either end of the comparison is missing.
1238
 
      (Aaron Bently, with a little prompting from Daniel Silverstone)
1239
 
 
1240
 
  BUG FIXES:
1241
 
 
1242
 
    * SFTP can walk up to the root path without index errors. (Robert Collins)
1243
 
 
1244
 
    * Fix bugs in running bzr with 'python -O'.  (Martin Pool)
1245
 
 
1246
 
    * Error when run with -OO
1247
 
 
1248
 
    * Fix bug in reporting http errors that don't have an http error code.
1249
 
      (Martin Pool)
1250
 
 
1251
 
    * Handle more cases of pipe errors in display commands
1252
 
 
1253
 
    * Change status to 3 for all errors
1254
 
 
1255
 
    * Files that are added and unlinked before committing are completely
1256
 
      ignored by diff and status
1257
 
 
1258
 
    * Stores with some compressed texts and some uncompressed texts are now
1259
 
      able to be used. (John A Meinel)
1260
 
 
1261
 
    * Fix for bzr pull failing sometimes under windows
1262
 
 
1263
 
    * Fix for sftp transport under windows when using interactive auth
1264
 
 
1265
 
    * Show files which are both renamed and modified as such in 'bzr 
1266
 
      status' output.  (#4503, Daniel Silverstone)
1267
 
 
1268
 
    * Make annotate cope better with revisions committed without a valid 
1269
 
      email address.  (Marien Zwart)
1270
 
 
1271
 
    * Fix representation of tab characters in commit messages.  (Harald 
1272
 
      Meland)
1273
 
 
1274
 
    * List of plugin directories in BZR_PLUGIN_PATH environment variable is
1275
 
      now parsed properly under Windows. (Alexander Belchenko)
1276
 
 
1277
 
    * Show number of revisions pushed/pulled/merged. (Robey Pointer)
1278
 
 
1279
 
    * Keep a cached copy of the basis inventory to speed up operations 
1280
 
      that need to refer to it.  (Johan Rydberg, Martin Pool)
1281
 
 
1282
 
    * Fix bugs in bzr status display of non-ascii characters.  (Martin 
1283
 
      Pool)
1284
 
 
1285
 
    * Remove Makefile.in from default ignore list.  (#6413, Tollef Fog 
1286
 
      Heen, Martin Pool)
1287
 
 
1288
 
    * Fix failure in 'bzr added'.  (Nathan McCallum, Martin Pool)
1289
 
 
1290
 
  TESTING:
1291
 
 
1292
 
    * Fix selftest asking for passwords when there are no SFTP keys.  
1293
 
      (Robey Pointer, Jelmer Vernooij) 
1294
 
 
1295
 
    * Fix selftest run with 'python -O'.  (Martin Pool)
1296
 
 
1297
 
    * Fix HTTP tests under Windows. (John Arbash Meinel)
1298
 
 
1299
 
    * Make tests work even if HOME is not set (Aaron Bentley)
1300
 
 
1301
 
    * Updated build_tree to use fixed line-endings for tests which read 
1302
 
      the file cotents and compare. Make some tests use this to pass under
1303
 
      Windows. (John Arbash Meinel)
1304
 
 
1305
 
    * Skip stat and symlink tests under Windows. (Alexander Belchenko)
1306
 
 
1307
 
    * Delay in selftest/testhashcash is now issued under win32 and Cygwin.
1308
 
      (John Arbash Meinel)
1309
 
 
1310
 
    * Use terminal width to align verbose test output.  (Martin Pool)
1311
 
 
1312
 
    * Blackbox tests are maintained within the bzrlib.tests.blackbox directory.
1313
 
      If adding a new test script please add that to
1314
 
      bzrlib.tests.blackbox.__init__. (Robert Collins)
1315
 
 
1316
 
    * Much better error message if one of the test suites can't be 
1317
 
      imported.  (Martin Pool)
1318
 
 
1319
 
    * Make check now runs the test suite twice - once with the default locale,
1320
 
      and once with all locales forced to C, to expose bugs. This is not 
1321
 
      trivially done within python, so for now its only triggered by running
1322
 
      Make check. Integrators and packagers who wish to check for full 
1323
 
      platform support should run 'make check' to test the source.
1324
 
      (Robert Collins)
1325
 
 
1326
 
    * Tests can now run TestSkipped if they can't execute for any reason.
1327
 
      (Martin Pool) (NB: TestSkipped should only be raised for correctable
1328
 
      reasons - see the wiki spec ImprovingBzrTestSuite).
1329
 
 
1330
 
    * Test sftp with relative, absolute-in-homedir and absolute-not-in-homedir
1331
 
      paths for the transport tests. Introduce blackbox remote sftp tests that
1332
 
      test the same permutations. (Robert Collins, Robey Pointer)
1333
 
 
1334
 
    * Transport implementation tests are now independent of the local file
1335
 
      system, which allows tests for esoteric transports, and for features
1336
 
      not available in the local file system. They also repeat for variations
1337
 
      on the URL scheme that can introduce issues in the transport code,
1338
 
      see bzrlib.transport.TransportTestProviderAdapter() for this.
1339
 
      (Robert Collins).
1340
 
 
1341
 
    * TestCase.build_tree uses the transport interface to build trees, pass
1342
 
      in a transport parameter to give it an existing connection.
1343
 
      (Robert Collins).
1344
 
 
1345
 
  INTERNALS:
1346
 
 
1347
 
    * WorkingTree.pull has been split across Branch and WorkingTree,
1348
 
      to allow Branch only pulls. (Robert Collins)
1349
 
 
1350
 
    * commands.display_command now returns the result of the decorated 
1351
 
      function. (Robert Collins)
1352
 
 
1353
 
    * LocationConfig now has a set_user_option(key, value) call to save
1354
 
      a setting in its matching location section (a new one is created
1355
 
      if needed). (Robert Collins)
1356
 
 
1357
 
    * Branch has two new methods, get_push_location and set_push_location
1358
 
      to respectively, get and set the push location. (Robert Collins)
1359
 
 
1360
 
    * commands.register_command now takes an optional flag to signal that
1361
 
      the registrant is planning to decorate an existing command. When 
1362
 
      given multiple plugins registering a command is not an error, and
1363
 
      the original command class (whether built in or a plugin based one) is
1364
 
      returned to the caller. There is a new error 'MustUseDecorated' for
1365
 
      signalling when a wrapping command should switch to the original
1366
 
      version. (Robert Collins)
1367
 
 
1368
 
    * Some option parsing errors will raise 'BzrOptionError', allowing 
1369
 
      granular detection for decorating commands. (Robert Collins).
1370
 
 
1371
 
    * Branch.read_working_inventory has moved to
1372
 
      WorkingTree.read_working_inventory. This necessitated changes to
1373
 
      Branch.get_root_id, and a move of Branch.set_inventory to WorkingTree
1374
 
      as well. To make it clear that a WorkingTree cannot always be obtained
1375
 
      Branch.working_tree() will raise 'errors.NoWorkingTree' if one cannot
1376
 
      be obtained. (Robert Collins)
1377
 
 
1378
 
    * All pending merges operations from Branch are now on WorkingTree.
1379
 
      (Robert Collins)
1380
 
 
1381
 
    * The follow operations from Branch have moved to WorkingTree:
1382
 
      add()
1383
 
      commit()
1384
 
      move()
1385
 
      rename_one()
1386
 
      unknowns()
1387
 
      (Robert Collins)
1388
 
 
1389
 
    * bzrlib.add.smart_add_branch is now smart_add_tree. (Robert Collins)
1390
 
 
1391
 
    * New "rio" serialization format, similar to rfc-822. (Martin Pool)
1392
 
 
1393
 
    * Rename selftests to `bzrlib.tests.test_foo`.  (John A Meinel, Martin 
1394
 
      Pool)
1395
 
 
1396
 
    * bzrlib.plugin.all_plugins has been changed from an attribute to a 
1397
 
      query method. (Robert Collins)
1398
 
 
1399
 
    * New options to read only the table-of-contents of a weave.  
1400
 
      (Denys Duchier)
1401
 
 
1402
 
    * Raise NoSuchFile when someone tries to add a non-existant file.
1403
 
      (Michael Ellerman)
1404
 
 
1405
 
    * Simplify handling of DivergedBranches in cmd_pull().
1406
 
      (Michael Ellerman)
1407
 
                   
1408
 
   
1409
 
    * Branch.controlfile* logic has moved to lockablefiles.LockableFiles, which
1410
 
      is exposed as Branch().control_files. Also this has been altered with the
1411
 
      controlfile pre/suffix replaced by simple method names like 'get' and
1412
 
      'put'. (Aaron Bentley, Robert Collins).
1413
 
 
1414
 
    * Deprecated functions and methods can now be marked as such using the 
1415
 
      bzrlib.symbol_versioning module. Marked method have their docstring
1416
 
      updated and will issue a DeprecationWarning using the warnings module
1417
 
      when they are used. (Robert Collins)
1418
 
 
1419
 
    * bzrlib.osutils.safe_unicode now exists to provide parameter coercion
1420
 
      for functions that need unicode strings. (Robert Collins)
1421
 
 
1422
 
bzr 0.6 2005-10-28
1423
 
 
1424
 
  IMPROVEMENTS:
1425
 
  
1426
 
    * pull now takes --verbose to show you what revisions are added or removed
1427
 
      (John A Meinel)
1428
 
 
1429
 
    * merge now takes a --show-base option to include the base text in
1430
 
      conflicts.
1431
 
      (Aaron Bentley)
1432
 
 
1433
 
    * The config files are now read using ConfigObj, so '=' should be used as
1434
 
      a separator, not ':'.
1435
 
      (Aaron Bentley)
1436
 
 
1437
 
    * New 'bzr commit --strict' option refuses to commit if there are 
1438
 
      any unknown files in the tree.  To commit, make sure all files are 
1439
 
      either ignored, added, or deleted.  (Michael Ellerman)
1440
 
 
1441
 
    * The config directory is now ~/.bazaar, and there is a single file 
1442
 
      ~/.bazaar/bazaar.conf storing email, editor and other preferences.
1443
 
      (Robert Collins)
1444
 
 
1445
 
    * 'bzr add' no longer takes a --verbose option, and a --quiet option
1446
 
      has been added that suppresses all output.
1447
 
 
1448
 
    * Improved zsh completion support in contrib/zsh, from Clint
1449
 
      Adams.
1450
 
 
1451
 
    * Builtin 'bzr annotate' command, by Martin Pool with improvements from 
1452
 
      Goffredo Baroncelli.
1453
 
    
1454
 
    * 'bzr check' now accepts -v for verbose reporting, and checks for
1455
 
      ghosts in the branch. (Robert Collins)
1456
 
 
1457
 
    * New command 're-sign' which will regenerate the gpg signature for 
1458
 
      a revision. (Robert Collins)
1459
 
 
1460
 
    * If you set check_signatures=require for a path in 
1461
 
      ~/.bazaar/branches.conf then bzr will invoke your
1462
 
      gpg_signing_command (defaults to gpg) and record a digital signature
1463
 
      of your commit. (Robert Collins)
1464
 
 
1465
 
    * New sftp transport, based on Paramiko.  (Robey Pointer)
1466
 
 
1467
 
    * 'bzr pull' now accepts '--clobber' which will discard local changes
1468
 
      and make this branch identical to the source branch. (Robert Collins)
1469
 
 
1470
 
    * Just give a quieter warning if a plugin can't be loaded, and 
1471
 
      put the details in .bzr.log.  (Martin Pool)
1472
 
 
1473
 
    * 'bzr branch' will now set the branch-name to the last component of the
1474
 
      output directory, if one was supplied.
1475
 
 
1476
 
    * If the option 'post_commit' is set to one (or more) python function
1477
 
      names (must be in the bzrlib namespace), then they will be invoked
1478
 
      after the commit has completed, with the branch and revision_id as
1479
 
      parameters. (Robert Collins)
1480
 
 
1481
 
    * Merge now has a retcode of 1 when conflicts occur. (Robert Collins)
1482
 
 
1483
 
    * --merge-type weave is now supported for file contents.  Tree-shape
1484
 
      changes are still three-way based.  (Martin Pool, Aaron Bentley)
1485
 
 
1486
 
    * 'bzr check' allows the first revision on revision-history to have
1487
 
      parents - something that is expected for cheap checkouts, and occurs
1488
 
      when conversions from baz do not have all history.  (Robert Collins).
1489
 
 
1490
 
   * 'bzr merge' can now graft unrelated trees together, if your specify
1491
 
     0 as a base. (Aaron Bentley)
1492
 
 
1493
 
   * 'bzr commit branch' and 'bzr commit branch/file1 branch/file2' now work
1494
 
     (Aaron Bentley)
1495
 
 
1496
 
    * Add '.sconsign*' to default ignore list.  (Alexander Belchenko)
1497
 
 
1498
 
   * 'bzr merge --reprocess' minimizes conflicts
1499
 
 
1500
 
  TESTING:
1501
 
 
1502
 
    * The 'bzr selftest --pattern' option for has been removed, now 
1503
 
      test specifiers on the command line can be simple strings, or 
1504
 
      regexps, or both. (Robert Collins)
1505
 
 
1506
 
    * Passing -v to selftest will now show the time each test took to 
1507
 
      complete, which will aid in analysing performance regressions and
1508
 
      related questions. (Robert Collins)
1509
 
 
1510
 
    * 'bzr selftest' runs all tests, even if one fails, unless '--one'
1511
 
      is given. (Martin Pool)
1512
 
 
1513
 
    * There is a new method for TestCaseInTempDir, assertFileEqual, which
1514
 
      will check that a given content is equal to the content of the named
1515
 
      file. (Robert Collins)
1516
 
 
1517
 
    * Fix test suite's habit of leaving many temporary log files in $TMPDIR.
1518
 
      (Martin Pool)
1519
 
 
1520
 
  INTERNALS:
1521
 
 
1522
 
    * New 'testament' command and concept for making gpg-signatures 
1523
 
      of revisions that are not tied to a particular internal
1524
 
      representation.  (Martin Pool).
1525
 
 
1526
 
    * Per-revision properties ('revprops') as key-value associated 
1527
 
      strings on each revision created when the revision is committed.
1528
 
      Intended mainly for the use of external tools.  (Martin Pool).
1529
 
 
1530
 
    * Config options have moved from bzrlib.osutils to bzrlib.config.
1531
 
      (Robert Collins)
1532
 
 
1533
 
    * Improved command line option definitions allowing explanations
1534
 
      for individual options, among other things.  Contributed by 
1535
 
      Magnus Therning.
1536
 
 
1537
 
    * Config options have moved from bzrlib.osutils to bzrlib.config.
1538
 
      Configuration is now done via the config.Config interface:
1539
 
      Depending on whether you have a Branch, a Location or no information
1540
 
      available, construct a ``*Config``, and use its ``signature_checking``,
1541
 
      ``username`` and ``user_email`` methods. (Robert Collins)
1542
 
 
1543
 
    * Plugins are now loaded under bzrlib.plugins, not bzrlib.plugin, and
1544
 
      they are made available for other plugins to use. You should not 
1545
 
      import other plugins during the __init__ of your plugin though, as 
1546
 
      no ordering is guaranteed, and the plugins directory is not on the
1547
 
      python path. (Robert Collins)
1548
 
 
1549
 
    * Branch.relpath has been moved to WorkingTree.relpath. WorkingTree no
1550
 
      no longer takes an inventory, rather it takes an option branch
1551
 
      parameter, and if None is given will open the branch at basedir 
1552
 
      implicitly. (Robert Collins)
1553
 
 
1554
 
    * Cleaner exception structure and error reporting.  Suggested by 
1555
 
      Scott James Remnant.  (Martin Pool)
1556
 
 
1557
 
    * Branch.remove has been moved to WorkingTree, which has also gained
1558
 
      lock_read, lock_write and unlock methods for convenience. (Robert
1559
 
      Collins)
1560
 
 
1561
 
    * Two decorators, needs_read_lock and needs_write_lock have been added
1562
 
      to the branch module. Use these to cause a function to run in a
1563
 
      read or write lock respectively. (Robert Collins)
1564
 
 
1565
 
    * Branch.open_containing now returns a tuple (Branch, relative-path),
1566
 
      which allows direct access to the common case of 'get me this file
1567
 
      from its branch'. (Robert Collins)
1568
 
 
1569
 
    * Transports can register using register_lazy_transport, and they 
1570
 
      will be loaded when first used.  (Martin Pool)
1571
 
 
1572
 
    * 'pull' has been factored out of the command as WorkingTree.pull().
1573
 
      A new option to WorkingTree.pull has been added, clobber, which will
1574
 
      ignore diverged history and pull anyway.
1575
 
      (Robert Collins)
1576
 
 
1577
 
    * config.Config has a 'get_user_option' call that accepts an option name.
1578
 
      This will be looked up in branches.conf and bazaar.conf as normal.
1579
 
      It is intended that this be used by plugins to support options - 
1580
 
      options of built in programs should have specific methods on the config.
1581
 
      (Robert Collins)
1582
 
 
1583
 
    * merge.merge_inner now has tempdir as an optional parameter. (Robert
1584
 
      Collins)
1585
 
 
1586
 
    * Tree.kind is not recorded at the top level of the hierarchy, as it was
1587
 
      missing on EmptyTree, leading to a bug with merge on EmptyTrees.
1588
 
      (Robert Collins)
1589
 
 
1590
 
    * WorkingTree.__del__ has been removed, it was non deterministic and not 
1591
 
      doing what it was intended to. See WorkingTree.__init__ for a comment
1592
 
      about future directions. (Robert Collins/Martin Pool)
1593
 
 
1594
 
    * bzrlib.transport.http has been modified so that only 404 urllib errors
1595
 
      are returned as NoSuchFile. Other exceptions will propogate as normal.
1596
 
      This allows debuging of actual errors. (Robert Collins)
1597
 
 
1598
 
    * bzrlib.transport.Transport now accepts *ONLY* url escaped relative paths
1599
 
      to apis like 'put', 'get' and 'has'. This is to provide consistent
1600
 
      behaviour - it operates on url's only. (Robert Collins)
1601
 
 
1602
 
    * Transports can register using register_lazy_transport, and they 
1603
 
      will be loaded when first used.  (Martin Pool)
1604
 
 
1605
 
    * 'merge_flex' no longer calls conflict_handler.finalize(), instead that
1606
 
      is called by merge_inner. This is so that the conflict count can be 
1607
 
      retrieved (and potentially manipulated) before returning to the caller
1608
 
      of merge_inner. Likewise 'merge' now returns the conflict count to the
1609
 
      caller. (Robert Collins)
1610
 
 
1611
 
    * 'revision.revision_graph can handle having only partial history for
1612
 
      a revision - that is no revisions in the graph with no parents.
1613
 
      (Robert Collins).
1614
 
 
1615
 
    * New builtins.branch_files uses the standard file_list rules to produce
1616
 
      a branch and a list of paths, relative to that branch (Aaron Bentley)
1617
 
 
1618
 
    * New TestCase.addCleanup facility.
1619
 
 
1620
 
    * New bzrlib.version_info tuple (similar to sys.version_info), which can
1621
 
      be used by programs importing bzrlib.
1622
 
 
1623
 
  BUG FIXES:
1624
 
 
1625
 
    * Better handling of branches in directories with non-ascii names. 
1626
 
      (Joel Rosdahl, Panagiotis Papadakos)
1627
 
 
1628
 
    * Upgrades of trees with no commits will not fail due to accessing
1629
 
      [-1] in the revision-history. (Andres Salomon)
1630
 
 
1631
 
 
1632
 
bzr 0.1.1 2005-10-12
1633
 
 
1634
 
  BUG FIXES:
1635
 
 
1636
 
    * Fix problem in pulling over http from machines that do not 
1637
 
      allow directories to be listed.
1638
 
 
1639
 
    * Avoid harmless warning about invalid hash cache after 
1640
 
      upgrading branch format.
1641
 
 
1642
 
  PERFORMANCE: 
1643
 
  
1644
 
    * Avoid some unnecessary http operations in branch and pull.
1645
 
 
1646
 
 
1647
 
bzr 0.1 2005-10-11
1648
 
 
1649
 
  NOTES:
1650
 
 
1651
 
    * 'bzr branch' over http initially gives a very high estimate
1652
 
      of completion time but it should fall as the first few 
1653
 
      revisions are pulled in.  branch is still slow on 
1654
 
      high-latency connections.
1655
 
 
1656
 
  BUG FIXES:
1657
 
  
1658
 
    * bzr-man.py has been updated to work again. Contributed by
1659
 
      Rob Weir.
1660
 
 
1661
 
    * Locking is now done with fcntl.lockf which works with NFS
1662
 
      file systems. Contributed by Harald Meland.
1663
 
 
1664
 
    * When a merge encounters a file that has been deleted on
1665
 
      one side and modified on the other, the old contents are
1666
 
      written out to foo.BASE and foo.SIDE, where SIDE is this
1667
 
      or OTHER. Contributed by Aaron Bentley.
1668
 
 
1669
 
    * Export was choosing incorrect file paths for the content of
1670
 
      the tarball, this has been fixed by Aaron Bentley.
1671
 
 
1672
 
    * Commit will no longer commit without a log message, an 
1673
 
      error is returned instead. Contributed by Jelmer Vernooij.
1674
 
 
1675
 
    * If you commit a specific file in a sub directory, any of its
1676
 
      parent directories that are added but not listed will be 
1677
 
      automatically included. Suggested by Michael Ellerman.
1678
 
 
1679
 
    * bzr commit and upgrade did not correctly record new revisions
1680
 
      for files with only a change to their executable status.
1681
 
      bzr will correct this when it encounters it. Fixed by
1682
 
      Robert Collins
1683
 
 
1684
 
    * HTTP tests now force off the use of http_proxy for the duration.
1685
 
      Contributed by Gustavo Niemeyer.
1686
 
 
1687
 
    * Fix problems in merging weave-based branches that have 
1688
 
      different partial views of history.
1689
 
 
1690
 
    * Symlink support: working with symlinks when not in the root of a 
1691
 
      bzr tree was broken, patch from Scott James Remnant.
1692
 
 
1693
 
  IMPROVEMENTS:
1694
 
 
1695
 
    * 'branch' now accepts a --basis parameter which will take advantage
1696
 
      of local history when making a new branch. This allows faster 
1697
 
      branching of remote branches. Contributed by Aaron Bentley.
1698
 
 
1699
 
    * New tree format based on weave files, called version 5.
1700
 
      Existing branches can be upgraded to this format using 
1701
 
      'bzr upgrade'.
1702
 
 
1703
 
    * Symlinks are now versionable. Initial patch by 
1704
 
      Erik Toubro Nielsen, updated to head by Robert Collins.
1705
 
 
1706
 
    * Executable bits are tracked on files. Patch from Gustavo
1707
 
      Niemeyer.
1708
 
 
1709
 
    * 'bzr status' now shows unknown files inside a selected directory.
1710
 
      Patch from Heikki Paajanen.
1711
 
 
1712
 
    * Merge conflicts are recorded in .bzr. Two new commands 'conflicts'
1713
 
      and 'resolve' have needed added, which list and remove those 
1714
 
      merge conflicts respectively. A conflicted tree cannot be committed
1715
 
      in. Contributed by Aaron Bentley.
1716
 
 
1717
 
    * 'rm' is now an alias for 'remove'.
1718
 
 
1719
 
    * Stores now split out their content in a single byte prefixed hash,
1720
 
      dropping the density of files per directory by 256. Contributed by
1721
 
      Gustavo Niemeyer.
1722
 
 
1723
 
    * 'bzr diff -r branch:URL' will now perform a diff between two branches.
1724
 
      Contributed by Robert Collins.
1725
 
 
1726
 
    * 'bzr log' with the default formatter will show merged revisions,
1727
 
      indented to the right. Initial implementation contributed by Gustavo
1728
 
      Niemeyer, made incremental by Robert Collins.
1729
 
 
1730
 
 
1731
 
  INTERNALS:
1732
 
 
1733
 
    * Test case failures have the exception printed after the log 
1734
 
      for your viewing pleasure.
1735
 
 
1736
 
    * InventoryEntry is now an abstract base class, use one of the
1737
 
      concrete InventoryDirectory etc classes instead.
1738
 
 
1739
 
    * Branch raises an UnsupportedFormatError when it detects a 
1740
 
      bzr branch it cannot understand. This allows for precise
1741
 
      handling of such circumstances.
1742
 
 
1743
 
 
1744
 
  TESTING:
1745
 
 
1746
 
    * Removed testsweet module so that tests can be run after 
1747
 
      bzr installed by 'bzr selftest'.
1748
 
 
1749
 
    * 'bzr selftest' command-line arguments can now be partial ids
1750
 
      of tests to run, e.g. 'bzr selftest test_weave'
1751
 
 
1752
 
      
1753
 
bzr 0.0.9 2005-09-23
1754
 
 
1755
 
  BUG FIXES:
1756
 
 
1757
 
    * Fixed "branch -r" option.
1758
 
 
1759
 
    * Fix remote access to branches containing non-compressed history.
1760
 
      (Robert Collins).
1761
 
 
1762
 
    * Better reliability of http server tests.  (John Arbash-Meinel)
1763
 
 
1764
 
    * Merge graph maximum distance calculation fix.  (Aaron Bentley)
1765
 
   
1766
 
    * Various minor bug in windows support have been fixed, largely in the
1767
 
      test suite. Contributed by Alexander Belchenko.
1768
 
 
1769
 
  IMPROVEMENTS:
1770
 
 
1771
 
    * Status now accepts a -r argument to give status between chosen
1772
 
      revisions. Contributed by Heikki Paajanen.
1773
 
 
1774
 
    * Revision arguments no longer use +/-/= to control ranges, instead
1775
 
      there is a 'before' namespace, which limits the successive namespace.
1776
 
      For example '$ bzr log -r date:yesterday..before:date:today' will
1777
 
      select everything from yesterday and before today. Contributed by
1778
 
      Robey Pointer
1779
 
 
1780
 
    * There is now a bzr.bat file created by distutils when building on 
1781
 
      Windows. Contributed by Alexander Belchenko.
1782
 
 
1783
 
  INTERNALS:
1784
 
 
1785
 
    * Removed uuid() as it was unused.
1786
 
 
1787
 
    * Improved 'fetch' code for pulling revisions from one branch into
1788
 
      another (used by pull, merged, etc.)
1789
 
 
1790
 
 
1791
 
bzr 0.0.8 2005-09-20
1792
 
 
1793
 
  IMPROVEMENTS:
1794
 
 
1795
 
    * Adding a file whose parent directory is not versioned will
1796
 
      implicitly add the parent, and so on up to the root. This means
1797
 
      you should never need to explictly add a directory, they'll just
1798
 
      get added when you add a file in the directory.  Contributed by
1799
 
      Michael Ellerman.
1800
 
 
1801
 
    * Ignore .DS_Store (contains Mac metadata) by default.  Patch from
1802
 
      Nir Soffer.
1803
 
 
1804
 
    * If you set BZR_EDITOR in the environment, it is checked in
1805
 
      preference to EDITOR and the config file for the interactive commit
1806
 
      editing program. Related to this is a bugfix where a missing program
1807
 
      set in EDITOR would cause editing to fail, now the fallback program
1808
 
      for the operating system is still tried.
1809
 
 
1810
 
    * Files that are not directories/symlinks/regular files will no longer
1811
 
      cause bzr to fail, it will just ignore them by default. You cannot add
1812
 
      them to the tree though - they are not versionable.
1813
 
 
1814
 
 
1815
 
  INTERNALS:
1816
 
 
1817
 
    * Refactor xml packing/unpacking.
1818
 
 
1819
 
  BUG FIXES: 
1820
 
 
1821
 
    * Fixed 'bzr mv' by Ollie Rutherfurd.
1822
 
 
1823
 
    * Fixed strange error when trying to access a nonexistent http
1824
 
      branch.
1825
 
 
1826
 
    * Make sure that the hashcache gets written out if it can't be
1827
 
      read.
1828
 
 
1829
 
 
1830
 
  PORTABILITY:
1831
 
 
1832
 
    * Various Windows fixes from Ollie Rutherfurd.
1833
 
 
1834
 
    * Quieten warnings about locking; patch from Matt Lavin.
1835
 
 
1836
 
 
1837
 
bzr-0.0.7 2005-09-02
1838
 
 
1839
 
  NEW FEATURES:
1840
 
 
1841
 
    * ``bzr shell-complete`` command contributed by Clint Adams to
1842
 
      help with intelligent shell completion.
1843
 
 
1844
 
    * New expert command ``bzr find-merge-base`` for debugging merges.
1845
 
 
1846
 
 
1847
 
  ENHANCEMENTS:
1848
 
 
1849
 
    * Much better merge support.
1850
 
 
1851
 
    * merge3 conflicts are now reported with markers like '<<<<<<<'
1852
 
      (seven characters) which is the same as CVS and pleases things
1853
 
      like emacs smerge.
1854
 
 
1855
 
 
1856
 
  BUG FIXES:
1857
 
 
1858
 
    * ``bzr upgrade`` no longer fails when trying to fix trees that
1859
 
      mention revisions that are not present.
1860
 
 
1861
 
    * Fixed bugs in listing plugins from ``bzr plugins``.
1862
 
 
1863
 
    * Fix case of $EDITOR containing options for the editor.
1864
 
 
1865
 
    * Fix log -r refusing to show the last revision.
1866
 
      (Patch from Goffredo Baroncelli.)
1867
 
 
1868
 
 
1869
 
  CHANGES:
1870
 
 
1871
 
    * ``bzr log --show-ids`` shows the revision ids of all parents.
1872
 
 
1873
 
    * Externally provided commands on your $BZRPATH no longer need
1874
 
      to recognize --bzr-usage to work properly, and can just handle
1875
 
      --help themselves.
1876
 
 
1877
 
 
1878
 
  LIBRARY:
1879
 
 
1880
 
    * Changed trace messages to go through the standard logging
1881
 
      framework, so that they can more easily be redirected by
1882
 
      libraries.
1883
 
 
1884
 
 
1885
 
 
1886
 
bzr-0.0.6 2005-08-18
1887
 
 
1888
 
  NEW FEATURES:
1889
 
 
1890
 
    * Python plugins, automatically loaded from the directories on
1891
 
      BZR_PLUGIN_PATH or ~/.bzr.conf/plugins by default.
1892
 
 
1893
 
    * New 'bzr mkdir' command.
1894
 
 
1895
 
    * Commit mesage is fetched from an editor if not given on the
1896
 
      command line; patch from Torsten Marek.
1897
 
 
1898
 
    * ``bzr log -m FOO`` displays commits whose message matches regexp 
1899
 
      FOO.
1900
 
      
1901
 
    * ``bzr add`` with no arguments adds everything under the current directory.
1902
 
 
1903
 
    * ``bzr mv`` does move or rename depending on its arguments, like
1904
 
      the Unix command.
1905
 
 
1906
 
    * ``bzr missing`` command shows a summary of the differences
1907
 
      between two trees.  (Merged from John Arbash-Meinel.)
1908
 
 
1909
 
    * An email address for commits to a particular tree can be
1910
 
      specified by putting it into .bzr/email within a branch.  (Based
1911
 
      on a patch from Heikki Paajanen.)
1912
 
 
1913
 
 
1914
 
  ENHANCEMENTS:
1915
 
 
1916
 
    * Faster working tree operations.
1917
 
 
1918
 
 
1919
 
  CHANGES:
1920
 
 
1921
 
    * 3rd-party modules shipped with bzr are copied within the bzrlib
1922
 
      python package, so that they can be installed by the setup
1923
 
      script without clashing with anything already existing on the
1924
 
      system.  (Contributed by Gustavo Niemeyer.)
1925
 
 
1926
 
    * Moved plugins directory to bzrlib/, so that there's a standard
1927
 
      plugin directory which is not only installed with bzr itself but
1928
 
      is also available when using bzr from the development tree.
1929
 
      BZR_PLUGIN_PATH and DEFAULT_PLUGIN_PATH are then added to the
1930
 
      standard plugins directory.
1931
 
 
1932
 
    * When exporting to a tarball with ``bzr export --format tgz``, put 
1933
 
      everything under a top directory rather than dumping it into the
1934
 
      current directory.   This can be overridden with the ``--root`` 
1935
 
      option.  Patch from William Dodé and John Meinel.
1936
 
 
1937
 
    * New ``bzr upgrade`` command to upgrade the format of a branch,
1938
 
      replacing ``bzr check --update``.
1939
 
 
1940
 
    * Files within store directories are no longer marked readonly on
1941
 
      disk.
1942
 
 
1943
 
    * Changed ``bzr log`` output to a more compact form suggested by
1944
 
      John A Meinel.  Old format is available with the ``--long`` or
1945
 
      ``-l`` option, patched by William Dodé.
1946
 
 
1947
 
    * By default the commit command refuses to record a revision with
1948
 
      no changes unless the ``--unchanged`` option is given.
1949
 
 
1950
 
    * The ``--no-plugins``, ``--profile`` and ``--builtin`` command
1951
 
      line options must come before the command name because they 
1952
 
      affect what commands are available; all other options must come 
1953
 
      after the command name because their interpretation depends on
1954
 
      it.
1955
 
 
1956
 
    * ``branch`` and ``clone`` added as aliases for ``branch``.
1957
 
 
1958
 
    * Default log format is back to the long format; the compact one
1959
 
      is available with ``--short``.
1960
 
      
1961
 
      
1962
 
  BUG FIXES:
1963
 
  
1964
 
    * Fix bugs in committing only selected files or within a subdirectory.
1965
 
 
1966
 
 
1967
 
bzr-0.0.5  2005-06-15
1968
 
  
1969
 
  CHANGES:
1970
 
 
1971
 
    * ``bzr`` with no command now shows help rather than giving an
1972
 
      error.  Suggested by Michael Ellerman.
1973
 
 
1974
 
    * ``bzr status`` output format changed, because svn-style output
1975
 
      doesn't really match the model of bzr.  Now files are grouped by
1976
 
      status and can be shown with their IDs.  ``bzr status --all``
1977
 
      shows all versioned files and unknown files but not ignored files.
1978
 
 
1979
 
    * ``bzr log`` runs from most-recent to least-recent, the reverse
1980
 
      of the previous order.  The previous behaviour can be obtained
1981
 
      with the ``--forward`` option.
1982
 
        
1983
 
    * ``bzr inventory`` by default shows only filenames, and also ids
1984
 
      if ``--show-ids`` is given, in which case the id is the second
1985
 
      field.
1986
 
 
1987
 
 
1988
 
  ENHANCEMENTS:
1989
 
 
1990
 
    * New 'bzr whoami --email' option shows only the email component
1991
 
      of the user identification, from Jo Vermeulen.
1992
 
 
1993
 
    * New ``bzr ignore PATTERN`` command.
1994
 
 
1995
 
    * Nicer error message for broken pipe, interrupt and similar
1996
 
      conditions that don't indicate an internal error.
1997
 
 
1998
 
    * Add ``.*.sw[nop] .git .*.tmp *,v`` to default ignore patterns.
1999
 
 
2000
 
    * Per-branch locks keyed on ``.bzr/branch-lock``, available in
2001
 
      either read or write mode.
2002
 
 
2003
 
    * New option ``bzr log --show-ids`` shows revision and file ids.
2004
 
 
2005
 
    * New usage ``bzr log FILENAME`` shows only revisions that
2006
 
      affected that file.
2007
 
 
2008
 
    * Changed format for describing changes in ``bzr log -v``.
2009
 
 
2010
 
    * New option ``bzr commit --file`` to take a message from a file,
2011
 
      suggested by LarstiQ.
2012
 
 
2013
 
    * New syntax ``bzr status [FILE...]`` contributed by Bartosz
2014
 
      Oler.  File may be in a branch other than the working directory.
2015
 
 
2016
 
    * ``bzr log`` and ``bzr root`` can be given an http URL instead of
2017
 
      a filename.
2018
 
 
2019
 
    * Commands can now be defined by external programs or scripts
2020
 
      in a directory on $BZRPATH.
2021
 
 
2022
 
    * New "stat cache" avoids reading the contents of files if they 
2023
 
      haven't changed since the previous time.
2024
 
 
2025
 
    * If the Python interpreter is too old, try to find a better one
2026
 
      or give an error.  Based on a patch from Fredrik Lundh.
2027
 
 
2028
 
    * New optional parameter ``bzr info [BRANCH]``.
2029
 
 
2030
 
    * New form ``bzr commit SELECTED`` to commit only selected files.
2031
 
 
2032
 
    * New form ``bzr log -r FROM:TO`` shows changes in selected
2033
 
      range; contributed by John A Meinel.
2034
 
 
2035
 
    * New option ``bzr diff --diff-options 'OPTS'`` allows passing
2036
 
      options through to an external GNU diff.
2037
 
 
2038
 
    * New option ``bzr add --no-recurse`` to add a directory but not
2039
 
      their contents.
2040
 
 
2041
 
    * ``bzr --version`` now shows more information if bzr is being run
2042
 
      from a branch.
2043
 
 
2044
 
  
2045
 
  BUG FIXES:
2046
 
 
2047
 
    * Fixed diff format so that added and removed files will be
2048
 
      handled properly by patch.  Fix from Lalo Martins.
2049
 
 
2050
 
    * Various fixes for files whose names contain spaces or other
2051
 
      metacharacters.
2052
 
 
2053
 
 
2054
 
  TESTING:
2055
 
 
2056
 
    * Converted black-box test suites from Bourne shell into Python;
2057
 
      now run using ``./testbzr``.  Various structural improvements to
2058
 
      the tests.
2059
 
 
2060
 
    * testbzr by default runs the version of bzr found in the same
2061
 
      directory as the tests, or the one given as the first parameter.
2062
 
 
2063
 
    * testbzr also runs the internal tests, so the only command
2064
 
      required to check is just ``./testbzr``.
2065
 
 
2066
 
    * testbzr requires python2.4, but can be used to test bzr running
2067
 
      under a different version.
2068
 
 
2069
 
    * Tests added for many other changes in this release.
2070
 
 
2071
 
 
2072
 
  INTERNAL:
2073
 
 
2074
 
    * Included ElementTree library upgraded to 1.2.6 by Fredrik Lundh.
2075
 
 
2076
 
    * Refactor command functions into Command objects based on HCT by
2077
 
      Scott James Remnant.
2078
 
 
2079
 
    * Better help messages for many commands.
2080
 
 
2081
 
    * Expose bzrlib.open_tracefile() to start the tracefile; until
2082
 
      this is called trace messages are just discarded.
2083
 
 
2084
 
    * New internal function find_touching_revisions() and hidden
2085
 
      command touching-revisions trace the changes to a given file.
2086
 
 
2087
 
    * Simpler and faster compare_inventories() function.
2088
 
 
2089
 
    * bzrlib.open_tracefile() takes a tracefilename parameter.
2090
 
 
2091
 
    * New AtomicFile class.
2092
 
 
2093
 
    * New developer commands ``added``, ``modified``.
2094
 
 
2095
 
 
2096
 
  PORTABILITY:
2097
 
 
2098
 
    * Cope on Windows on python2.3 by using the weaker random seed.
2099
 
      2.4 is now only recommended.
2100
 
 
2101
 
 
2102
 
bzr-0.0.4  2005-04-22
2103
 
 
2104
 
  ENHANCEMENTS:
2105
 
 
2106
 
    * 'bzr diff' optionally takes a list of files to diff.  Still a bit
2107
 
      basic.  Patch from QuantumG.
2108
 
 
2109
 
    * More default ignore patterns.
2110
 
 
2111
 
    * New 'bzr log --verbose' shows a list of files changed in the
2112
 
      changeset.  Patch from Sebastian Cote.
2113
 
 
2114
 
    * Roll over ~/.bzr.log if it gets too large.
2115
 
 
2116
 
    * Command abbreviations 'ci', 'st', 'stat', '?' based on a patch
2117
 
      by Jason Diamon.
2118
 
 
2119
 
    * New 'bzr help commands' based on a patch from Denys Duchier.
2120
 
 
2121
 
 
2122
 
  CHANGES:
2123
 
 
2124
 
    * User email is determined by looking at $BZREMAIL or ~/.bzr.email
2125
 
      or $EMAIL.  All are decoded by the locale preferred encoding.
2126
 
      If none of these are present user@hostname is used.  The host's
2127
 
      fully-qualified name is not used because that tends to fail when
2128
 
      there are DNS problems.
2129
 
 
2130
 
    * New 'bzr whoami' command instead of username user-email.
2131
 
 
2132
 
 
2133
 
  BUG FIXES: 
2134
 
 
2135
 
    * Make commit safe for hardlinked bzr trees.
2136
 
 
2137
 
    * Some Unicode/locale fixes.
2138
 
 
2139
 
    * Partial workaround for difflib.unified_diff not handling
2140
 
      trailing newlines properly.
2141
 
 
2142
 
 
2143
 
  INTERNAL:
2144
 
 
2145
 
    * Allow docstrings for help to be in PEP0257 format.  Patch from
2146
 
      Matt Brubeck.
2147
 
 
2148
 
    * More tests in test.sh.
2149
 
 
2150
 
    * Write profile data to a temporary file not into working
2151
 
      directory and delete it when done.
2152
 
 
2153
 
    * Smaller .bzr.log with process ids.
2154
 
 
2155
 
 
2156
 
  PORTABILITY:
2157
 
 
2158
 
    * Fix opening of ~/.bzr.log on Windows.  Patch from Andrew
2159
 
      Bennetts.
2160
 
 
2161
 
    * Some improvements in handling paths on Windows, based on a patch
2162
 
      from QuantumG.
2163
 
 
2164
 
 
2165
 
bzr-0.0.3  2005-04-06
2166
 
 
2167
 
  ENHANCEMENTS:
2168
 
 
2169
 
    * New "directories" internal command lists versioned directories
2170
 
      in the tree.
2171
 
 
2172
 
    * Can now say "bzr commit --help".
2173
 
 
2174
 
    * New "rename" command to rename one file to a different name
2175
 
      and/or directory.
2176
 
 
2177
 
    * New "move" command to move one or more files into a different
2178
 
      directory.
2179
 
 
2180
 
    * New "renames" command lists files renamed since base revision.
2181
 
 
2182
 
    * New cat command contributed by janmar.
2183
 
 
2184
 
  CHANGES:
2185
 
 
2186
 
    * .bzr.log is placed in $HOME (not pwd) and is always written in
2187
 
      UTF-8.  (Probably not a completely good long-term solution, but
2188
 
      will do for now.)
2189
 
 
2190
 
  PORTABILITY:
2191
 
 
2192
 
    * Workaround for difflib bug in Python 2.3 that causes an
2193
 
      exception when comparing empty files.  Reported by Erik Toubro
2194
 
      Nielsen.
2195
 
 
2196
 
  INTERNAL:
2197
 
 
2198
 
    * Refactored inventory storage to insert a root entry at the top.
2199
 
 
2200
 
  TESTING:
2201
 
 
2202
 
    * Start of shell-based black-box testing in test.sh.
2203
 
 
2204
 
 
2205
 
bzr-0.0.2.1
2206
 
 
2207
 
  PORTABILITY:
2208
 
 
2209
 
    * Win32 fixes from Steve Brown.
2210
 
 
2211
 
 
2212
 
bzr-0.0.2  "black cube"  2005-03-31
2213
 
 
2214
 
  ENHANCEMENTS:
2215
 
 
2216
 
    * Default ignore list extended (see bzrlib/__init__.py).
2217
 
 
2218
 
    * Patterns in .bzrignore are now added to the default ignore list,
2219
 
      rather than replacing it.
2220
 
 
2221
 
    * Ignore list isn't reread for every file.
2222
 
 
2223
 
    * More help topics.
2224
 
 
2225
 
    * Reinstate the 'bzr check' command to check invariants of the
2226
 
      branch.
2227
 
 
2228
 
    * New 'ignored' command lists which files are ignored and why;
2229
 
      'deleted' lists files deleted in the current working tree.
2230
 
 
2231
 
    * Performance improvements.
2232
 
 
2233
 
    * New global --profile option.
2234
 
    
2235
 
    * Ignore patterns like './config.h' now correctly match files in
2236
 
      the root directory only.
2237
 
 
2238
 
 
2239
 
bzr-0.0.1  2005-03-26
2240
 
 
2241
 
  ENHANCEMENTS:
2242
 
 
2243
 
    * More information from info command.
2244
 
 
2245
 
    * Can now say "bzr help COMMAND" for more detailed help.
2246
 
 
2247
 
    * Less file flushing and faster performance when writing logs and
2248
 
      committing to stores.
2249
 
 
2250
 
    * More useful verbose output from some commands.
2251
 
 
2252
 
  BUG FIXES:
2253
 
 
2254
 
    * Fix inverted display of 'R' and 'M' during 'commit -v'.
2255
 
 
2256
 
  PORTABILITY:
2257
 
 
2258
 
    * Include a subset of ElementTree-1.2.20040618 to make
2259
 
      installation easier.
2260
 
 
2261
 
    * Fix time.localtime call to work with Python 2.3 (the minimum
2262
 
      supported).
2263
 
 
2264
 
 
2265
 
bzr-0.0.0.69  2005-03-22
2266
 
 
2267
 
  ENHANCEMENTS:
2268
 
 
2269
 
    * First public release.
2270
 
 
2271
 
    * Storage of local versions: init, add, remove, rm, info, log,
2272
 
      diff, status, etc.
 
1
####################
 
2
Bazaar Release Notes
 
3
####################
 
4
 
 
5
.. toctree::
 
6
   :maxdepth: 1
 
7
 
 
8
bzr 2.3.2
 
9
#########
 
10
 
 
11
:2.3.2: NOT RELEASED YET
 
12
 
 
13
External Compatibility Breaks
 
14
*****************************
 
15
 
 
16
.. These may require users to change the way they use Bazaar.
 
17
 
 
18
New Features
 
19
************
 
20
 
 
21
.. New commands, options, etc that users may wish to try out.
 
22
 
 
23
Improvements
 
24
************
 
25
 
 
26
.. Improvements to existing commands, especially improved performance 
 
27
   or memory usage, or better results.
 
28
 
 
29
* Getting all entries from ``CHKInventory.iter_entries_by_dir()`` has been
 
30
  sped up dramatically for large trees. Iterating by dir is not the best
 
31
  way to load data from a CHK inventory, so it preloads all the items in
 
32
  the correct order. (With the gcc-tree, this changes it (re)reading 8GB
 
33
  of CHK data, down to just 150MB.) This has noticeable affects for things
 
34
  like building checkouts, etc.  (John Arbash Meinel, #737234)
 
35
 
 
36
Bug Fixes
 
37
*********
 
38
 
 
39
.. Fixes for situations where bzr would previously crash or give incorrect
 
40
   or undesirable results.
 
41
 
 
42
* Bazaar now infers the default user email address on Unix from the local
 
43
  account name plus the contents of ``/etc/mailname`` if that file exists.
 
44
  In particular, this means that committing as root through etckeeper will
 
45
  normally not require running ``bzr whoami`` first.
 
46
  (Martin Pool, #616878)
 
47
 
 
48
* ``bzr merge --preview --pull`` should respect the ``--preview`` option
 
49
  first, and not actually change the branch tip revision.
 
50
  (John Arbash Meinel, Dennis Duchier, #760152)
 
51
 
 
52
* ``bzr push`` into a repository (that doesn't have a branch), will no
 
53
  longer copy all revisions in the repository. Only the ones in the
 
54
  ancestry of the source branch, like it does in all other cases.
 
55
  (John Arbash Meinel, #465517)
 
56
 
 
57
* Fix ``UnboundLocalError: local variable 'lock_url' in wait_lock`` error,
 
58
  especially while trying to save configuration from QBzr.
 
59
  (Martin Pool, #733136)
 
60
 
 
61
* Fix "Unable to obtain lock" error when pushing to a bound branch if tags
 
62
  had changed.  Bazaar was attempting to open and lock the master branch
 
63
  twice in this case.  (Andrew Bennetts, #733350)
 
64
 
 
65
* Standalone bzr.exe installation on Windows: user can put additional python 
 
66
  libraries into ``site-packages`` subdirectory of the installation directory,
 
67
  this might be required for "installing" extra dependencies for some plugins.
 
68
  (Alexander Belchenko, #743256)
 
69
 
 
70
* When reporting a crash without apport, don't print the full list of
 
71
  plugins because it's often too long.
 
72
  (Martin Pool, #716389)
 
73
 
 
74
 
 
75
Documentation
 
76
*************
 
77
 
 
78
.. Improved or updated documentation.
 
79
 
 
80
API Changes
 
81
***********
 
82
 
 
83
.. Changes that may require updates in plugins or other code that uses
 
84
   bzrlib.
 
85
 
 
86
Internals
 
87
*********
 
88
 
 
89
.. Major internal changes, unlikely to be visible to users or plugin 
 
90
   developers, but interesting for bzr developers.
 
91
 
 
92
Testing
 
93
*******
 
94
 
 
95
.. Fixes and changes that are only relevant to bzr's test framework and 
 
96
   suite.  This can include new facilities for writing tests, fixes to 
 
97
   spurious test failures and changes to the way things should be tested.
 
98
 
 
99
* FreeBSD8 has switched to python-2.7 which revealed a re-occurrence of a test
 
100
  failure in the launchpad plugin. ``xmlrpclib.py`` on natty carries a patch
 
101
  that is not in python-2.7 upstream and masked the issue. An additional fix
 
102
  has been added in the interim
 
103
  (<http://psf.upfronthosting.co.za/roundup/tracker/issue8194> should be fixed
 
104
  in python > 2.7.1).  (Vincent Ladeuil, #654733)
 
105
 
 
106
bzr 2.3.1
 
107
#########
 
108
 
 
109
:2.3.1: 2011-03-10
 
110
 
 
111
This is a bugfix release. Upgrading is recommended for all users of earlier
 
112
2.3 releases.
 
113
 
 
114
Bug Fixes
 
115
*********
 
116
 
 
117
.. Fixes for situations where bzr would previously crash or give incorrect
 
118
   or undesirable results.
 
119
 
 
120
* Correctly resolve text conflicts for files in subdirs.
 
121
  (Vincent Ladeuil, #715058)
 
122
 
 
123
* Fix "AssertionError: repository.user_url ... does not match URL from
 
124
  server response" when reusing a smart transport.
 
125
  (Andrew Bennetts, #726584)
 
126
 
 
127
* Restore proper logging of bytes transferred. We accidentally reset the
 
128
  counter when commands finished before we logged the total transferred.
 
129
  (John Arbash Meinel, #713258)
 
130
 
 
131
bzr 2.3.0
 
132
#########
 
133
 
 
134
:2.3.0: 2011-02-03
 
135
 
 
136
This release marks the start of another long-term-stable series. From here, we
 
137
will only make bugfix releases on the 2.3 series (2.3.1, etc, and support it
 
138
until August 2012), while 2.4 will become our new development series. The 2.1
 
139
and 2.2 series will also continue to get bugfixes. (Currently 2.0 is planned
 
140
to be EOLed circa September 2011 and will receive only critical bugfixes.)
 
141
 
 
142
This is a bugfix and polish release over the 2.2 series, with a large number
 
143
of bugs fixed (>130), and some performance improvements. Some features have
 
144
been enhanced including commits on stacked branches, upgrades of related
 
145
branches, shortcut URL schemes for ubuntu and debian on launchpad and better
 
146
conflict resolution.
 
147
 
 
148
Only bugfixes from other stables series have been included since 2.3b5 so all
 
149
known fixed bugs are included here.
 
150
 
 
151
Users are encouraged to upgrade from the other stable series.
 
152
 
 
153
bzr 2.3b5
 
154
#########
 
155
 
 
156
:2.3.b5: 2011-01-13
 
157
 
 
158
This is the fifth and **last** beta of the 2.3 series, leading up to a 2.3.0
 
159
release in February. Beta releases are suitable for everyday use but may cause
 
160
some incompatibilities with plugins.
 
161
 
 
162
2.3b5 includes bug fixes for committing to stacked branches, smoother upgrades
 
163
of multiple branches, compatibility with python-2.7, full test suite passing
 
164
on Ubuntu Natty and windows, less round-trips for several smart server
 
165
operations, better support text conflicts resolve actions and some more.
 
166
 
 
167
All known fixed bugs in other series (2.0, 2.1, 2.2) are also included here.
 
168
 
 
169
External Compatibility Breaks
 
170
*****************************
 
171
 
 
172
(none)
 
173
 
 
174
Improvements
 
175
************
 
176
 
 
177
* A redundant parent inventories calculation was removed from
 
178
  ``fetch.py``, as ``Repository.insert_stream`` already reports any
 
179
  missing inventories.  This removes at least one network roundtrip when
 
180
  pushing to a stacked branch.  (Andrew Bennetts)
 
181
 
 
182
* ``ControlDir.sprout`` no longer opens the target repository more than
 
183
  once.  This avoids some unnecessary IO, and removes a network roundtrip
 
184
  when doing ``bzr branch`` to a smart server URL.  (Andrew Bennetts)
 
185
 
 
186
* ``bzr modified`` now read-locks the working tree (and branch and
 
187
  repository) just once.  (Andrew Bennetts)
 
188
  
 
189
* ``bzr resolve`` now accepts ``--take-this`` and ``--take-other`` actions
 
190
  for text conflicts. This *replace* the whole file with the content
 
191
  designated by the action. This will *ignore* all differences that would
 
192
  have been merge cleanly otherwise. (Vincent Ladeuil, #638451)
 
193
 
 
194
* ``bzr tags``'s "sort" argument now allows registering custom sort
 
195
  methods using the ``bzrlib.tag.tag_sort_methods`` registry. 
 
196
  (Jelmer Vernooij, #701244)
 
197
 
 
198
* ``bt.test_http`` was breaking ``os.environ`` by erasing the values saved by
 
199
  ``TestCase`` leading to ``bt.test_import_tariff`` failures.
 
200
  (Vincent Ladeuil, #690563)
 
201
 
 
202
* ``upgrade`` now upgrades dependent branches when a shared repository is
 
203
  specified. It also supports new options: ``--dry-run`` for showing what
 
204
  will happen and ``--clean`` to remove the backup directory on successful
 
205
  completion. (Ian Clatworthy, Matthew Fuller, #89830, #374734, #422450)
 
206
 
 
207
Bug Fixes
 
208
*********
 
209
 
 
210
.. Fixes for situations where bzr would previously crash or give incorrect
 
211
   or undesirable results.
 
212
 
 
213
* Avoid leaking SSH subprocess communication socket into unrelated child
 
214
  processes, which could cause bzr to hang on exit. (Max Bowsher, #696285)
 
215
 
 
216
* ``bzr break-lock`` on a corrupted lock file works correctly, rather than
 
217
  raising a PermissionDenied error. We were accidentally holding open the
 
218
  file we were trying to delete. (John Arbash Meinel, #659978)
 
219
 
 
220
* ``bzr update`` in a checkout of a readonly branch works again, without
 
221
  trying to set the tags in the master branch. This had been broken by the
 
222
  bug fix for bug #603395.  (John Arbash Meinel, #701212)
 
223
 
 
224
* Per-transport tests now prefer to use ``Transport.get_bytes()`` rather
 
225
  than ``Transport.get().read()``. The SFTP code uses an async message to
 
226
  close the file handle if you let the handle die from refcounting, while
 
227
  it uses a synchronous message if you close it directly. This should help
 
228
  prevent random test suite failures from race conditions.
 
229
  (John Arbash Meinel, #681047)
 
230
 
 
231
* Stop using ``bzrlib.tuned_gzip.GzipFile``. It is incompatible with
 
232
  python-2.7 and was only used for Knit format repositories, which haven't
 
233
  been recommended since 2007. The file itself will be removed in the next
 
234
  release. (John Arbash Meinel)
 
235
 
 
236
* The BZR_COLUMNS environment variable can be set to 0 to indicate no
 
237
  limitation on the width of the terminal.  (Neil Martinsen-Burrell, #675652)
 
238
 
 
239
* Treat WSAECONNABORTED the same as WSAECONNRESET for the purposes of
 
240
  considering a smart data stream as being interrupted. This fixes a
 
241
  failure in the windows test suite, that was trying to ensure we cleanly
 
242
  handled a server disconnect.  (John Arbash Meinel, #581311, #686587)
 
243
 
 
244
* Unshelving changes that occur in a now-unversioned directory now restore
 
245
  the directory properly rather than crashing.
 
246
  (John Arbash Meinel, #389674)
 
247
 
 
248
* You are now able to commit directly to a stacked branch. Any needed
 
249
  parent inventories will be filled in as part of the commit process.
 
250
  (John Arbash Meinel, #375013)
 
251
 
 
252
Documentation
 
253
*************
 
254
 
 
255
* Better document the rules to update the bzr freshmeat page when
 
256
  doing a release. (Vincent Ladeuil, #690515)
 
257
 
 
258
API Changes
 
259
***********
 
260
 
 
261
* ``Branch.sprout``, ``BranchFormat.initalize`` and
 
262
  ``ControlDir.create_branch`` now take an optional ``repository`` keyword
 
263
  argument, and ``BranchFormat.open`` now takes an optional
 
264
  ``found_repository`` keyword argument.  These provide the repository
 
265
  object for new branch object to use (for cases when the caller has
 
266
  already opened that repository).  Implementations of these APIs will
 
267
  need to be updated to accept these arguments.  (Andrew Bennetts)
 
268
 
 
269
* ``bzrlib.tuned_gzip.GzipFile`` is now deprecated and will be removed in
 
270
  the bzr-2.4 series. Code that was using it can just use the python
 
271
  stdlib ``gzip.GzipFile``. (John Arbash Meinel)
 
272
 
 
273
 
 
274
Testing
 
275
*******
 
276
 
 
277
* ``bzrlib.tests`` defines ``isolated_environ`` with the definitions of all
 
278
  the environment variables the tests should care about. It also defines
 
279
  ``override_os_environ`` and ``restore_os_environ`` to properly implement
 
280
  isolation from ``os.environ`` for tests. ``bzrlib.tests`` now defines a
 
281
  ``DocTestSuite`` class using this facility for all ``bzrlib``
 
282
  doctests. (Vincent Ladeuil, #321320)
 
283
 
 
284
* Catch exceptions related to bug #637821 during test cleanup to avoid
 
285
  spurious failures. (Vincent Ladeuil, #686008).
 
286
 
 
287
* Check sphinx compatibility for tests requiring older sphinx versions.
 
288
  (Vincent Ladeuil, #688072)
 
289
 
 
290
* ``test_onto_transport`` in the Launchpad plugin can now run with Python
 
291
  2.7. (Vincent Ladeuil, #654733)
 
292
 
 
293
* ``TestCase._captureVar`` and ``TestCase._old_env`` have been deleted due to
 
294
  bug #690563. Test writers are encouraged to use ``TestCase.overrideEnv``
 
295
  instead. (Vincent Ladeuil)
 
296
 
 
297
* ``TestDebuntuExpansions`` was escaping the test isolation by calling the
 
298
  wrong base class ``setUp``. (Vincent Ladeuil, #684662)
 
299
 
 
300
bzr 2.3b4
 
301
#########
 
302
 
 
303
:2.3.b4: 2010-12-03
 
304
 
 
305
This is the fourth beta of the 2.3 series, leading up to a 2.3.0 release in
 
306
February. Beta releases are suitable for everyday use but may cause some
 
307
incompatibilities with plugins.
 
308
 
 
309
2.3b4 includes bug fixes for the ``config`` command and conflict
 
310
resolution. More changes were made for the test scripts handling to make it
 
311
easier to add reproducing recipes to bugs.
 
312
 
 
313
It also includes bug fixes from the 2.2.2 release as well as the bug fixes
 
314
in the upcoming 2.0.7, 2.1.4 and 2.2.3 releases. This means that all known
 
315
fixed bugs at the time of this release are included.
 
316
 
 
317
 
 
318
External Compatibility Breaks
 
319
*****************************
 
320
 
 
321
  (none)
 
322
 
 
323
Improvements
 
324
************
 
325
 
 
326
* Bazaar now caches a branch's tags while that branch is read-locked.
 
327
  This removes 1 network roundtrip from most interactions with a remote
 
328
  branch.  (Andrew Bennetts)
 
329
 
 
330
* ``bzr config <option>`` will now display only the value itself so scripts
 
331
  can use it to query the currently active configuration. Displaying several
 
332
  options matching a given regular expression is now controlled via the
 
333
  ``--all`` option.  (Vincent Ladeuil, bug #670251)
 
334
 
 
335
* ``bzr resolve`` now reports the number of conflicts resolved and the
 
336
  number of remaining conflicts. This provides a better feedback about the
 
337
  whole resolution process. (Vincent Ladeuil)
 
338
 
 
339
* Read configuration files in $XDG_CONFIG_HOME/bazaar on Unix if there is
 
340
  already a directory there.  (Neil Martinsen-Burrell, #195397)
 
341
 
 
342
Bug Fixes
 
343
*********
 
344
 
 
345
* Better message if there is an error while setting ownership of
 
346
  ``.bazaar`` directory. (Parth Malwankar, #657553)
 
347
 
 
348
* ``bzr config`` properly displays list values. (Vincent Ladeuil, #672382)
 
349
 
 
350
* ``bzr config`` will now respect option policies when displaying the value
 
351
  and display the definition sections when appropriate.
 
352
  (Vincent Ladeuil, #671050)
 
353
 
 
354
* Don't create commit message files in the current directory to avoid nasty
 
355
  interactions with emacs (which tries to establish the status of the file
 
356
  during the commit which breaks on windows). (Vincent Ladeuil, #673637)
 
357
 
 
358
* ``bzr resolve --take-other <file>`` will not crash anymore if ``<file>``
 
359
  is involved in a text conflict (but the conflict is still not
 
360
  resolved). (Vincent Ladeuil, #646961)
 
361
 
 
362
* Merge will now correctly locate a lca where there is a criss-cross merge
 
363
  of a new root. (Gary van der Merwe, #588698)
 
364
 
 
365
* Report error if non-ASCII command option given. (Rory Yorke, #140563)
 
366
 
 
367
* ``tools/check-newsbug.py`` is now based on ``lp:hydrazine`` and no longer
 
368
  crashes when encountering private bugs (they are just displayed as such).
 
369
  (Vincent Ladeuil, #354985)
 
370
 
 
371
Internals
 
372
*********
 
373
 
 
374
* ``BranchBuilder.build_snapshot`` now accepts parent_ids == [].
 
375
  This can be used to create a new root in the graph. (Gary van der Merwe)
 
376
 
 
377
* Old repository development formats
 
378
  RepositoryFormatCHK1 and RepositoryFormatCHK2 have been removed, and so
 
379
  have the corresponding metadir format options ``development-rich-root``,
 
380
  ``development6-rich-root``, and ``development7-rich-root``.
 
381
 
 
382
Testing
 
383
*******
 
384
 
 
385
* Add a null_output_matches_anything keyword argument with default False to
 
386
  bzrlib.tests.script.ScriptRunner.run_script to specify that the command
 
387
  output should not be checked (as opposed to expecting an empty output).
 
388
  (Neil Martinsen-Burrell, #662509)
 
389
 
 
390
* Blank output section in scriptrunner tests no longer match any output.
 
391
  Instead, use '...' as a wildcard if you don't care about the output.
 
392
  (Martin Pool, #637830)
 
393
 
 
394
* Bump minimum testtools version required to run ``bzr selftest`` from 0.9.2
 
395
  to 0.9.5 which will allow tests that need the fixed unicode handling to be
 
396
  written. (Martin [gz])
 
397
 
 
398
* Introduce an ``overrideEnv()`` helper for tests that needs to change the
 
399
  environment variables while respecting the isolation rules. Get rid of
 
400
  TestCase._restoreEnvironment which is now useless.
 
401
  (Vincent Ladeuil, #690563)
 
402
 
 
403
* Printing selftest results to a non-UTF-8 console will now escape characters
 
404
  that can't be encoded rather than aborting the test run with an exception.
 
405
  (Martin [gz], #633216)
 
406
 
 
407
 
 
408
bzr 2.3b3
 
409
#########
 
410
 
 
411
:2.3b3: 2010-11-05
 
412
 
 
413
External Compatibility Breaks
 
414
*****************************
 
415
 
 
416
(none)
 
417
 
 
418
New Features
 
419
************
 
420
 
 
421
* Add --no-tree option to 'bzr push' and 'bzr init' for creating a
 
422
  new or mirrored branch without working trees.
 
423
  (Matthew Gordon, #506730)
 
424
 
 
425
* ``bzr config`` is a new command that displays the configuration options for
 
426
  a given directory. It accepts a glob to match against multiple options at
 
427
  once. It can also be used to set or delete a configuration option in any
 
428
  configuration file. (Vincent Ladeuil)
 
429
 
 
430
* New shortcut URL schemes ``ubuntu:`` and ``debianlp:`` access source
 
431
  branches on Launchpad.  E.g. ``bzr branch ubuntu:foo`` gives you the source
 
432
  branch for project ``foo`` in the current distroseries for Ubuntu while
 
433
  ``bzr branch debianlp:lenny/foo`` gives you the source branch (on Launchpad)
 
434
  for project ``foo`` in Debian Lenny.
 
435
  (Barry Warsaw, #609186)
 
436
 
 
437
* Provide a configuration option "default_format" that controls the
 
438
  default format for new branches created with ``bzr init``.
 
439
  (Neil Martinsen-Burrell, #484101)
 
440
 
 
441
Bug Fixes
 
442
*********
 
443
 
 
444
* Always set PATH in start_bzr.bat on Windows. (Matthäus G. Chajdas, #470264)
 
445
 
 
446
* ``bzr status -r X..Y`` was failing because RevisionTree didn't implement
 
447
  ``get_shelf_manager``. (John Arbash Meinel, #662053)
 
448
 
 
449
* Correctly add directory contents when the name was previously added as a
 
450
  normal file, rather than throwing ``AttributeError: children`` during
 
451
  smart_add. (Martin [gz], #251864)
 
452
 
 
453
* Correctly handle the ``--directory`` option for all code paths of
 
454
  ``resolve`` and ``shelve``, this was previously ignored when paths were
 
455
  provided as parameters. When both are provided, ``--directory`` becomes
 
456
  the base directory for the other paths. (Vincent Ladeuil, #670851)
 
457
 
 
458
* Correctly set the Content-Type  header when HTTP POSTing to comply
 
459
  with stricter web frameworks. (Vincent Ladeuil, #665100)
 
460
 
 
461
* Don't force openssh to use protocol=2, since that is now the default.
 
462
  (Neil Martinsen-Burrell, #561061)
 
463
 
 
464
* Fix ``KeyError: 'port'`` when getting the stored password for an HTTP  URL.
 
465
  (Martin Pool, #654684)
 
466
 
 
467
* Make ``bzr tag --quiet`` really quiet. (Neil Martinsen-Burrell, #239523)
 
468
 
 
469
* Missing files (files bzr add'ed and then OS deleted) are now shown in ``bzr
 
470
  status`` output. (Rory Yorke, #134168)
 
471
 
 
472
* ``NotBranchError`` no longer allows errors from calling
 
473
  ``bzrdir.open_repository()`` to propagate.  This is unhelpful at best,
 
474
  and at worst can trigger infinite loops in callers.  (Andrew Bennetts)
 
475
  
 
476
* The ``branch.tags.merge_to(target_branch)`` API used by plugins such as
 
477
  ``bzr-builddeb`` now propagates changes to the master branch of the
 
478
  target branch (if there is one).  This makes it consistent with the
 
479
  other tag APIs.  (Andrew Bennetts, #603395)
 
480
 
 
481
* Windows installers no longer requires the Microsoft vcredist to be
 
482
  installed. (Martin [gz], Gary van der Merwe, #632465)
 
483
 
 
484
Documentation
 
485
*************
 
486
 
 
487
* Add documentation of the ability to edit hunks when shelving.
 
488
  (Neil Martinsen-Burrell, #517660)
 
489
 
 
490
* Be more specific about the meaning of revision ranges for ``bzr diff``.
 
491
  (Neil Martinsen-Burrell, #247282)
 
492
 
 
493
* Document the comment character in the .bzrignore file, including a
 
494
  workaround for ignore patterns that begin with #.
 
495
  (Neil Martinsen-Burrell, #631515)
 
496
 
 
497
API Changes
 
498
***********
 
499
 
 
500
* Add ``bzrlib.pyutils`` module with helper functions for some Python
 
501
  tasks such as resolving a dotted name to a Python object
 
502
  (``get_named_object``).  (Andrew Bennetts)
 
503
 
 
504
* ``bzrlib.tests.ForwardingResult`` no longer exists.  Use
 
505
  ``testtools.ExtendedToOriginalDecorator`` instead.  (Andrew Bennetts)
 
506
 
 
507
* ``known_hooks_key_to_parent_and_attribute`` in ``bzrlib.hooks`` has been
 
508
  deprecated in favour of ``known_hooks.key_to_parent_and_attribute`` in
 
509
  the same module.  (Andrew Bennetts)
 
510
 
 
511
Internals
 
512
*********
 
513
 
 
514
* ``tools/fixed-in.py`` find a bug in NEWS from its number or a regexp
 
515
  matching the news entry and display the corresponding release, date, fix
 
516
  authors and the news entry itself. (Vincent Ladeuil)
 
517
 
 
518
Testing
 
519
*******
 
520
 
 
521
* Blank output section in scriptrunner tests no longer match any output.
 
522
  Instead, use '...' as a wildcard if you don't care about the output.
 
523
  (Martin Pool, #637830)
 
524
 
 
525
* ``bzr test-script script`` is a new command that runs a shell-like script
 
526
  from an the ``script`` file. (Vincent Ladeuil)
 
527
 
 
528
* Fix spurious test failures on babune related to the http pipe cleanup and
 
529
  get rid of some 'bytes left on the HTTP socket' useless log messages.
 
530
  (Vincent Ladeuil, #655557)
 
531
 
 
532
* ``bzrlib.tests.per_workingtree.TestCaseWithWorkingTree.make_branch_builder``
 
533
  respects its ``relpath`` parameter. (Vincent Ladeuil)
 
534
 
 
535
bzr 2.3b2
 
536
#########
 
537
 
 
538
:2.3b2: 2010-10-08
 
539
 
 
540
External Compatibility Breaks
 
541
*****************************
 
542
 
 
543
* The ``bzr tags`` command sorts tag names using a natural sort by
 
544
  default (so tag2 sorts before tag10).  The previous default was
 
545
  strictly "asciibetical".  That behavior is still available as ``bzr tags
 
546
  --sort=alpha``. (Neil Martinsen-Burrell, #640760)
 
547
 
 
548
* ``BzrDir.generate_backup_name`` has been deprecated and replaced by a
 
549
  private method. ``osutils.available_backup_name`` provides an extensible
 
550
  replacement. This allowed the deprecation of
 
551
  ``bzrlib.transform.get_backup_name``,
 
552
  ``bzrlib.transform._get_backup_name`` and
 
553
  ``bzrlib.transform.TreeTransformBase.has_named_child``.
 
554
  (Vincent Ladeuil)
 
555
 
 
556
New Features
 
557
************
 
558
 
 
559
* Add ``mainline`` revision specifier, which selects the revision that
 
560
  merged a specified revision into the mainline.  (Aaron Bentley)
 
561
 
 
562
* Add ``annotate`` revision specifier, which selects the revision that
 
563
  introduced a specified line of a file.  (Aaron Bentley)
 
564
 
 
565
* Add ``-Dmem_dump`` debug flag, which uses meliae to dump memory to 
 
566
  a file upon an out of memory error.
 
567
  (Karl Bielefeldt, #551391)
 
568
 
 
569
* ``bzr status`` now displays a summary of existing shelves after
 
570
  the other status information. This is done using a ``post_status``
 
571
  hook.
 
572
  (Parth Malwankar, #403687)
 
573
 
 
574
* GNU lsh is now a supported lsh client; just set BZR_SSH to 'lsh'.
 
575
  Also, bzr will recognize if the 'ssh' comand is a symlink to lsh.
 
576
  (Matthew Gordon, #374700)
 
577
 
 
578
* The ``pull`` and ``update`` commands now take a ``--show-base``
 
579
  option that, in the case of conflicts, shows the base revision text.
 
580
  (Rory Yorke,  #202374)
 
581
 
 
582
Improvements
 
583
************
 
584
 
 
585
* ``bzr break-lock --force`` breaks the lock without prompting.  (Before
 
586
  using this, make sure the process holding the lock really is dead.)
 
587
  (Martin Pool, #397315)
 
588
 
 
589
* ``bzr remove`` now takes a ``--no-backup`` option for when you don't want it
 
590
  to backup anything, just delete it. This option used to be called ``--force``
 
591
  which is now deprecated.
 
592
  (Marius Kruger, #400554)
 
593
 
 
594
* When using the pycurl client module, Bazaar shows some of the text from
 
595
  HTTP server error messages.
 
596
  (Martin Pool, #656667)
 
597
 
 
598
Bug Fixes
 
599
*********
 
600
 
 
601
* Don't force openssh to use protocol=2, since that is now the default.
 
602
  (Neil Martinsen-Burrell, #561061)
 
603
 
 
604
* Fix signature of RemoteBzrDir.create_workingtree to match that of its
 
605
  superclass.  (Neil Martinsen-Burrell, Martin Pool, #524627)
 
606
 
 
607
* Fix traceback with python-2.7's xmlrpclib
 
608
  (Toshio Kuratomi, #612096)
 
609
 
 
610
* Print junk rather than throwing a UnicodeDecodeError from ``bzr version-info``
 
611
  when using the rio format (with non-ascii information) on a non-utf-8
 
612
  terminal.  (Andrej A Antonov, #518609)
 
613
 
 
614
* Treat all IO, OS, and socket errors consistently when establishing
 
615
  SSH/SFTP connections via a subprocess.  (Andrew Bennetts)
 
616
 
 
617
* ``unshelve --preview`` now can show diff in a non-ascii encoding.
 
618
  (Andrej A Antonov, #518916)
 
619
 
 
620
* Deleting a versioned directory can leave orphans: unversioned files that
 
621
  were present don't have a parent anymore. The
 
622
  ``bzr.transform.orphan_policy`` configuration option controls the ``bzr``
 
623
  behaviour: ``conflict`` (the default) leave the orphans in place and
 
624
  create a conflict for the directory, ``move`` create orphans named
 
625
  ``<file>.~#~`` in a ``bzr-orphans`` directory at the root of the working
 
626
  tree.  (Vincent Ladeuil, #323111)
 
627
 
 
628
Improvements
 
629
************
 
630
 
 
631
Documentation
 
632
*************
 
633
 
 
634
* Correct the documentation for setting up the smart server with Apache.
 
635
  (Neil Martinsen-Burrell, #311518)
 
636
 
 
637
* Fix rst typos in bzrlib/help_topics/en/conflict-types.txt.
 
638
  (Vincent Ladeuil, #660943)
 
639
 
 
640
* Provide more detailed help on the Launchpad plugin at "bzr help
 
641
  plugins/launchpad".  (Neil Martinsen-Burrell, #589379)
 
642
 
 
643
* Suggest ``bzr revert`` for restoring locally deleted files in help text
 
644
  for ``bzr update``.  (John C Barstow, #191466)
 
645
 
 
646
API Changes
 
647
***********
 
648
 
 
649
* ``WorkingTree`` methods ``pull``, ``update``, and ``_update_tree``
 
650
  now have an optional argument, ``show_base``, which is by default
 
651
  False.  This is flag is ultimately passed to ``merge.merge_inner``
 
652
  in each case. (Rory Yorke, #202374)
 
653
 
 
654
Internals
 
655
*********
 
656
 
 
657
* Small change to GroupCompressBlock to work more in terms of 'chunks'
 
658
  rather than 'content' for its compressed storage. (John Arbash Meinel)
 
659
 
 
660
* When running ``bzr selftest --subunit`` the subunit stream will no
 
661
  longer include the "log" information for tests which are considered to
 
662
  be 'successes' (success, xfail, skip, etc) (John Arbash Meinel)
 
663
 
 
664
Testing
 
665
*******
 
666
 
 
667
* Add a new simpler way to generate multiple test variations, by setting
 
668
  the `scenarios` attribute of a test class to a list of scenarios
 
669
  descriptions, then using `load_tests_apply_scenarios`.  (See the testing
 
670
  guide and `bzrlib.tests.scenarios`.) Simplify `test_http` using this.
 
671
  (Martin Pool, #597791)
 
672
 
 
673
* Add ``tests/ssl_certs/ca.crt`` to the required test files list. Test
 
674
  involving the pycurl https test server fail otherwise when running
 
675
  selftest from an installed version. (Vincent Ladeuil, #651706)
 
676
 
 
677
* Fix tests that failed when run under ``LANG=C``.
 
678
  (Andrew Bennetts, #632387)
 
679
 
 
680
* Skip tests that needs a bzr source tree when there isn't one. This is
 
681
  needed to successfully run the test suite for installed versions.
 
682
  (Vincent Ladeuil, #644855).
 
683
 
 
684
* Skip the tests that requires respecting the chmod bits when running as root.
 
685
  (Vincent Ladeuil, #646133)
 
686
 
 
687
* Suppress the "maximum recursion depth exceeded in __subclasscheck__"
 
688
  warning on stderr emitted during ``test_dict_deepnested`` in
 
689
  ``bzrlib/tests/test__bencode.py``.  (Andrew Bennetts)
 
690
 
 
691
* Use tests.TestCaseInTempDir for tests that requires disk resources.
 
692
  (Vincent Ladeuil, #650001)
 
693
 
 
694
bzr 2.3b1
 
695
#########
 
696
 
 
697
:2.3b1: 2010-09-20
 
698
 
 
699
This is the first beta of the 2.3 series, leading up to a 2.3.0
 
700
release in January or February.  Beta releases are suitable for everyday use
 
701
but may cause some incompatibilities with plugins.  Some plugins may need
 
702
small updates to work with 2.3b1.
 
703
 
 
704
2.3b1 includes some performance improvements in both speed and memory
 
705
consumption, some preliminary support for generating a texinfo version of
 
706
the doc and better support for launchpad.  Many changes were made to make
 
707
our test suite more robust as well as numerous documentation fixes.  It
 
708
improves the common infrastructure for dealing with colocated named
 
709
branches and foreign branches.  We plan to continue with these themes
 
710
through the 2.3 series.
 
711
 
 
712
It also includes bug fixes for 2.0.6, 2.1.3 and 2.2.1 and over 40 fixes of
 
713
its own.
 
714
 
 
715
 
 
716
External Compatibility Breaks
 
717
*****************************
 
718
 
 
719
(none)
 
720
 
 
721
New Features
 
722
************
 
723
 
 
724
* Added ``pre_status`` and ``post_status`` hooks. This allows plugins
 
725
  to register custom handlers which will be invoked before/after the
 
726
  standard status output is displayed. (Parth Malwankar)
 
727
 
 
728
* ``bzr break-lock --config [location]`` can now break config files
 
729
  locks. (Vincent Ladeuil, #525571)
 
730
 
 
731
* ``bzrlib.config.LockableConfig`` is a base class for config files that
 
732
  needs to be protected against multiple writers. All methods that
 
733
  change a configuration variable value must be decorated with
 
734
  @needs_write_lock (set_option() for example).
 
735
  (Vincent Ladeuil,  #525571)
 
736
 
 
737
* The ``lp:`` prefix will now use your known username (from
 
738
  ``bzr launchpad-login``) to expand ``~`` to your username.  For example:
 
739
  ``bzr launchpad-login user && bzr push lp:~/project/branch`` will now
 
740
  push to ``lp:~user/project/branch``.  (John Arbash Meinel)
 
741
 
 
742
* New development format ``development8-subtree`` which is similar to the 
 
743
  ``2a`` format and adds subtree support. (Jelmer Vernooij)
 
744
 
 
745
Improvements
 
746
************
 
747
 
 
748
* Allow using both ``--using`` and ``--diff-options``.
 
749
  (Matthäus G. Chajdas, #234708)
 
750
 
 
751
* Allow using non-integer bug ID with generic bug trackers.
 
752
  (Alexandre Garnier, #440472)
 
753
 
 
754
* ``bzr remove`` now just backs up changed files instead of exiting,
 
755
  forcing you to choose to either keep or delete them. Bazaar will now delete
 
756
  the files if they can easily be recovered using revert, otherwise they
 
757
  will be backed up (adding an extension of the form .~#~).
 
758
  (Marius Kruger, #400554)
 
759
 
 
760
* ``bzr revert`` and ``bzr status`` are up to 15% faster on large trees
 
761
  with many changes by not repeatedly building a list of all file-ids.
 
762
  (Andrew Bennetts)
 
763
 
 
764
* Decrease memory consumption when many chk index pages are loaded. (Such
 
765
  as during ``bzr co`` or ``bzr ls -R`` of a large tree.) Often we need to
 
766
  read many chk pages because the individual chk map nodes will be spread
 
767
  randomly. Peak memory for 'bzr ls -R' on a large tree dropped from 396MB
 
768
  down to 247MB, expect even more significant savings on 64-bit platforms.
 
769
  (John Arbash Meinel)
 
770
 
 
771
* Decrease peak memory during ``bzr send``. The old code was caching all
 
772
  text content and all inventory strings for all revisions before
 
773
  computing the diffs. Now we only cache as long as there is a child that
 
774
  will need them. Sending 2000 bzr revisions drops from 1.2GB peak to
 
775
  256MB peak. (John Arbash Meinel, #614576)
 
776
 
 
777
* ``DirState`` internals use a little bit less memory. For bzr.dev it
 
778
  drops the memory from 1MB down to about 800kB. And replaces a few
 
779
  thousand tuples and sets with StaticTuple.  (John Arbash Meinel)
 
780
 
 
781
* Inventory entries now consume less memory (on 32-bit Ubuntu file entries
 
782
  have dropped from 68 bytes to 40, and directory entries from 120 bytes
 
783
  to 48).  (Andrew Bennetts)
 
784
 
 
785
* Reduce peak memory by one copy of compressed text when writing to pack
 
786
  repositories.
 
787
  (John Arbash Meinel, #566940)
 
788
 
 
789
* When building new working trees, default to reading from the repository
 
790
  rather than the source tree unless explicitly requested. (via
 
791
  ``--files-from`` and ``--hardlink`` for ``bzr branch`` and
 
792
  ``bzr checkout``. Generally, 2a format repositories extract
 
793
  content faster than seeking and reading content from another tree,
 
794
  especially in cold-cache situations. (John Arbash Meinel, #607298)
 
795
 
 
796
* Add ``__pycache__`` to the default ``ignores`` file. Future releases of
 
797
  Python will use this directory to store bytecodes.
 
798
  (Andrea Corbellini, #626687)
 
799
 
 
800
Bug Fixes
 
801
*********
 
802
 
 
803
* Additional merges after an unrelated branch has been merged with its
 
804
  history no longer crash when deleted files are involved.
 
805
  (Vincent Ladeuil, John Arbash Meinel, #375898)
 
806
 
 
807
* ``bzr add SYMLINK/FILE`` now works properly when the symlink points to a
 
808
  previously-unversioned directory within the tree: the directory is
 
809
  marked versioned too.
 
810
  (Martin Pool, #192859)
 
811
 
 
812
* ``bzr clean-tree`` issues a warning if it is unable to delete a file
 
813
  due to ``errno.EACCES`` instead of exiting with an error on Windows.
 
814
  (Parth Malwankar, #430785)
 
815
 
 
816
* ``bzr commit SYMLINK`` now works, rather than trying to commit the
 
817
  target of the symlink.
 
818
  (Martin Pool, John Arbash Meinel, #128562)
 
819
 
 
820
* ``bzr ignore PATTERNS`` exits with error if a bad pattern is supplied.
 
821
  ``InvalidPattern`` exception error message now shows faulting
 
822
  regular expression.
 
823
  (Parth Malwankar #300062)
 
824
 
 
825
* ``bzr upgrade`` now creates the ``backup.bzr`` directory with the same
 
826
  permissions as ``.bzr`` directory on a POSIX OS.
 
827
  (Parth Malwankar, #262450)
 
828
 
 
829
* CommitBuilder now uses the committer instead of _config.username to generate
 
830
  the revision-id.  (Aaron Bentley, #614404)
 
831
 
 
832
* Configuration files in ``${BZR_HOME}`` are now written in an atomic
 
833
  way which should help avoid problems with concurrent writers.
 
834
  (Vincent Ladeuil, #525571)
 
835
 
 
836
* CommitBuilder now uses the committer instead of _config.username to generate
 
837
  the revision-id.  (Aaron Bentley, #614404)
 
838
 
 
839
* Configuration files in ``${BZR_HOME}`` are now protected against
 
840
  concurrent writers by using a lock. (Vincent Ladeuil, #525571)
 
841
 
 
842
* Cope with Microsoft FTP Server and VSFTPd that return reply '250
 
843
  Directory created' when mkdir succeeds.  (Martin Pool, #224373)
 
844
 
 
845
* `decode` parameter to get() method in FtpTransport and GioTransport classes
 
846
  is deprecated. (Alexander Belchenko)
 
847
 
 
848
* Don't print internal object name when print an invalid revision spec
 
849
  error.  (Neil Martinsen-Burrell, #598701)
 
850
 
 
851
* Don't traceback when a lockdir's ``held/info`` file is corrupt (e.g.
 
852
  contains only NUL bytes).  Instead warn the user, and allow ``bzr
 
853
  break-lock`` to remove it.  (Andrew Bennetts, #619872)
 
854
  
 
855
* ``EPIPE`` can be raised during test server shutdown. This happened on
 
856
  gentoo only so far. (Vincent Ladeuil, #627277)
 
857
 
 
858
* Errors occurring during HTTP(S) test server starts should now be
 
859
  handled cleanly. (Vincent Ladeuil, #392402)
 
860
 
 
861
* Fix ``AttributeError on parent.children`` when adding a file under a 
 
862
  directory that was a symlink in the previous commit.
 
863
  (Martin Pool, #192859)
 
864
 
 
865
* Fix ``AttributeError: 'NoneType' object has no attribute 'close'`` in
 
866
  ``_close_ssh_proc`` when using ``bzr+ssh://``.  This was causing
 
867
  connections to pre-1.6 bzr+ssh servers to fail, and causing warnings on
 
868
  stderr in some other circumstances.  (Andrew Bennetts, #633745)
 
869
 
 
870
* Fix spurious paramiko warning on hardy by ensuring that ``selftest``
 
871
  properly remove its warning filter. (Vincent Ladeuil, #625686)
 
872
 
 
873
* Fix ``AttributeError on parent.children`` when adding a file under a
 
874
  directory that was a symlink in the previous commit.
 
875
  (Martin Pool, #192859)
 
876
 
 
877
* Fix ``AttributeError: 'NoneType' object has no attribute 'close'`` in
 
878
  ``_close_ssh_proc`` when using ``bzr+ssh://``.  This was causing
 
879
  connections to pre-1.6 bzr+ssh servers to fail, and causing warnings on
 
880
  stderr in some other circumstances.  (Andrew Bennetts, #633745)
 
881
 
 
882
* Fix a problem in bzr's ``Makefile`` that meant syntax errors in some
 
883
  parts of bzr's source code could cause ``make check-nodocs`` to
 
884
  incorrectly return an exit code of 0.
 
885
  (Vincent Ladeuil, #626667)
 
886
 
 
887
* ``HTTP/1.1`` test servers now set a ``Content-Length`` header to comply
 
888
  with pedantic ``HTTP/1.1`` clients. (Vincent Ladeuil, #568421)
 
889
 
 
890
* Most of the leaked threads during selftest are now fixed, allowing the
 
891
  full test suite to pass on gentoo.
 
892
  (Vincent Ladeuil, #392127)
 
893
 
 
894
* Only call ``setlocale`` in the bzr startup script on posix systems. This
 
895
  avoids an issue with the newer windows C runtimes used by Python 2.6 and
 
896
  later which can mangle bytestrings printed to the console.
 
897
  (Martin [gz], #631350)
 
898
 
 
899
* `PathNotChild` should not give a traceback.
 
900
  (Martin Pool, #98735)
 
901
 
 
902
* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
 
903
  which can result in "missing referenced chk root keys" errors when
 
904
  fetching from repositories with affected revisions.
 
905
  (Andrew Bennetts, #522637)
 
906
 
 
907
* Raise ValueError instead of a string exception.
 
908
  (John Arbash Meinel, #586926)
 
909
 
 
910
* Repositories accessed via a smart server now reject being stacked on a
 
911
  repository in an incompatible format, as is the case when accessing them
 
912
  via other methods.  This was causing fetches from those repositories via
 
913
  a smart server (e.g. using ``bzr branch``) to receive invalid data.
 
914
  (Andrew Bennetts, #562380)
 
915
 
 
916
* Selftest with versions of subunit that support ``stopTestRun`` will no longer
 
917
  error. This error was caused by 2.0 not being updated when upstream
 
918
  python merged the end of run patch, which chose ``stopTestRun`` rather than
 
919
  ``done``. (Robert Collins, #571437)
 
920
 
 
921
* Stop ``AttributeError: 'module' object has no attribute 'ElementTree'``
 
922
  being thrown from ``xml_serializer`` on certain cElementTree setups.
 
923
  (Martin [gz], #254278)
 
924
 
 
925
* strace test-helper tests cope with the new Ubuntu policy of not allowing
 
926
  users to attach to their own processes by default.
 
927
  (Martin Pool, #626679)
 
928
 
 
929
* Test classes like ``TestCase``, ``TestLoader``, and ``TestSuite`` should
 
930
  be available from ``bzrlib.tests.*``. They used to be, but were
 
931
  accidentally removed. (John Arbash Meinel, #627438)
 
932
 
 
933
* ``Transport.stat`` on a symlink, including a transport pointing directly
 
934
  to a symlink, now returns information about the symlink.
 
935
  (Martin Pool)
 
936
 
 
937
* Upgrading or fetching from a non-rich-root repository to a rich-root
 
938
  repository (e.g. from pack-0.92 to 2a) no longer fails with
 
939
  ``'Inter1and2Helper' object has no attribute 'source_repo'``.  This was
 
940
  a regression from Bazaar 2.1.  (Andrew Bennetts, #636930)
 
941
  
 
942
Documentation
 
943
*************
 
944
 
 
945
* Added a builder/writer sphinx extension that can generate texinfo files. The
 
946
  generated files are syntactically correct but the info navigation nodes
 
947
  needs more work. (Vincent Ladeuil, #219334)
 
948
 
 
949
* First tests defined for sphinx, including a new bzrlib.tests.features.sphinx
 
950
  to make the tests conditional.
 
951
  (Vincent Ladeuil)
 
952
 
 
953
* Fix a lot of references in the docs to the old http://bazaar-vcs.org to
 
954
  the new http://bazaar.canonical.com or http://wiki.bazaar.canonical.com
 
955
  (John Arbash Meinel, #617503)
 
956
 
 
957
API Changes
 
958
***********
 
959
 
 
960
* When passing a file to ``UTF8DirReader`` make sure to close the current
 
961
  directory file handle after the chdir fails. Otherwise when passing many
 
962
  filenames into a command line ``bzr status`` we would leak descriptors.
 
963
  (John Arbash Meinel, #583486)
 
964
 
 
965
* `ControlDirFormat` and  `ControlDir` have been split out of `BzrDirFormat`
 
966
  and `BzrDir`, respectively. `ControlDirFormat`
 
967
  and `ControlDir` should be used as the base classes for new non-.bzr
 
968
  implementations.
 
969
 
 
970
  `BzrDirFormat.register_control_format` has been renamed to
 
971
  `ControlDirFormat.register_format`.
 
972
 
 
973
  `BzrDirFormat.register_server_control_format` has been removed.
 
974
 
 
975
  Probing for control directories is now done by separate objects derived
 
976
  from `bzrlib.controldir.Prober` and registered using
 
977
  `bzrlib.controldir.ControlDirFormat.register_prober` or
 
978
  `bzrlib.controldir.ControlDirFormat.register_server_prober`.
 
979
  `BzrDirFormat.probe_transport` has been moved onto `Prober`.
 
980
 
 
981
  `BzrDirFormat.register_format` has been renamed to
 
982
  `BzrProber.register_bzrdir_format`.
 
983
 
 
984
  `bzrlib.bzrdir.network_format_registry` has been moved to
 
985
  `bzrlib.controldir`.
 
986
 
 
987
  (Jelmer Vernooij)
 
988
 
 
989
* ``bzrlib.transform.TreeTransformBase.final_kind``,
 
990
  ``bzrlib.transform.TreeTransform.tree_kind`` and
 
991
  ``bzrlib.transform.TransformPreview.tree_kind`` now return None instead
 
992
  of raising NoSuchFile.  (Vincent Ladeuil)
 
993
 
 
994
* BzrError subclasses no longer support the name "message" to be used
 
995
  as an argument for __init__ or in _fmt format specification as this
 
996
  breaks in some Python versions. errors.LockError.__init__ argument
 
997
  is now named "msg" instead of earlier "message".
 
998
  (Parth Malwankar, #603461)
 
999
 
 
1000
* Configuration files should now use the ``from_string`` constructor rather
 
1001
  than the ``file`` parameter of the ``_get_parser`` method. The later has
 
1002
  been deprecated. ``from_string`` also accept a ``save=True`` parameter to
 
1003
  have the configuration file immediately written to disk. 
 
1004
  (Vincent Ladeuil)
 
1005
 
 
1006
* Deprecate treating a `PushResult` and `PullResult` as an integer for the
 
1007
  relative change in revno.
 
1008
  (Martin Pool)
 
1009
 
 
1010
* `FileInWrongBranch` is deprecated in favour of `PathNotChild` and no
 
1011
  longer raised.
 
1012
  (Martin Pool)
 
1013
 
 
1014
* ``IniBaseConfig`` objects should now use the ``from_string`` constructor
 
1015
  the rather than the ``file`` parameter of the ``_get_parser`` method. The
 
1016
  later has been deprecated. (Vincent Ladeuil)
 
1017
 
 
1018
* InventoryEntry instances now raise AttributeError if you try to assign
 
1019
  to attributes that are irrelevant to that kind of entry.  e.g. setting
 
1020
  ``symlink_target`` on an InventoryFile will fail.  It is still okay to
 
1021
  read those attributes on any kind of InventoryEntry.  The complete list
 
1022
  of affected attributes is: ``executable``, ``text_id``, ``text_sha1``,
 
1023
  ``text_size`` (only valid for kind == file); ``symlink_target`` (only
 
1024
  valid for kind == link); and ``reference_revision`` (only valid for kind
 
1025
  == tree-reference).  (Andrew Bennetts)
 
1026
 
 
1027
* InventoryEntry objects no longer have ``_put_in_tar`` or
 
1028
  ``_put_on_disk`` methods.  (Andrew Bennetts)
 
1029
 
 
1030
* The ``get_filename`` parameter in the ``config.IniBaseConfig``
 
1031
  constructor has been deprecated, use the ``file_name`` parameter instead.
 
1032
  (Vincent Ladeuil)
 
1033
 
 
1034
* `tree_files` and `internal_tree_files` are now deprecated in favor of
 
1035
  `WorkingTree.open_containing_paths`.
 
1036
  (Martin Pool)
 
1037
 
 
1038
Internals
 
1039
*********
 
1040
 
 
1041
* Remove used and broken code path in ``BranchInitHookParams.__repr__``.
 
1042
  (Andrew Bennetts)
 
1043
 
 
1044
Testing
 
1045
*******
 
1046
 
 
1047
* Avoid spurious failures in ssh tests: wait for the SSH server to
 
1048
  actually finish, rather than just waiting for it to negotiate the key
 
1049
  exchange. (John Arbash Meinel, #626876)
 
1050
 
 
1051
* ``build_tree_contents`` can create symlinks.
 
1052
  (Martin Pool, John Arbash Meinel)
 
1053
 
 
1054
* Catch socket errors to avoid
 
1055
  bt.test_sftp_transport.SSHVendorBadConnection.test_bad_connection_ssh
 
1056
  random failures. (Vincent Ladeuil, #601804)
 
1057
 
 
1058
* HTTP test servers will leak less threads (and sockets) and will not hang on
 
1059
  AIX anymore. (Vincent Ladeuil, #405745)
 
1060
 
 
1061
* On platforms that don't support forking give a nice error message saying so
 
1062
  when ``bzr selftest --parallel=fork`` is used. (Martin [gz], #528730)
 
1063
 
 
1064
* Rearrange thread leak detection code to eliminate global state and make it
 
1065
  possible to extend the reporting. (Martin [gz], #633462)
 
1066
 
 
1067
* The old ``bzr selftest --benchmark`` option has been removed.
 
1068
  <https://launchpad.net/bzr-usertest> is an actively-maintained
 
1069
  macrobenchmark suite.
 
1070
  (Martin Pool)
 
1071
 
 
1072
* The test suite now simply holds log files in memory, rather than writing them
 
1073
  out to disk and then reading them back in and deleting them.
 
1074
  (Andrew Bennetts)
 
1075
 
 
1076
* The way ``bzr selftest --parallel`` generates N partitions of tests to
 
1077
  run in parallel has changed.  Instead of splitting the list of tests at
 
1078
  N-1 points, it distributes the tests one-by-one into the partitions in a
 
1079
  round robin fashion.  This reduces the total time to run the tests in
 
1080
  parallel because a series of slow tests in the test suite will be
 
1081
  distributed evenly among the parallel test suites, rather than slowing
 
1082
  down just one suite.  (Andrew Bennetts)
 
1083
 
 
1084
* Tracebacks from a parameterized test are no longer reported against every
 
1085
  parameterization of that test.  This was done by adding a hack to
 
1086
  ``bzrlib.tests.clone_test`` so that it no longer causes
 
1087
  testtools.TestCase instances to share a details dict.
 
1088
  (Andrew Bennetts, #625574)
 
1089
 
 
1090
 
 
1091
..
 
1092
   vim: tw=74 ft=rst ff=unix