~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to NEWS

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-12-12 16:29:59 UTC
  • mfrom: (2178.1.1 jam-integration)
  • Revision ID: pqm@pqm.ubuntu.com-20061212162959-cd3c77ebe8d57759
(Kent Gibson, Jan Hudec) Better glob pattern matcher (fixes bug #57637)

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 
3
3
  IMPROVEMENTS:
4
4
 
 
5
    * Aliases now support quotation marks, so they can contain whitespace
 
6
      (Marius Kruger)
 
7
 
 
8
    * PyCurlTransport now use a single curl object. By specifying explicitly
 
9
      the 'Range' header, we avoid the need to use two different curl objects
 
10
      (and two connections to the same server). (Vincent Ladeuil)
 
11
 
 
12
    * ``bzr commit`` does not prompt for a message until it is very likely to
 
13
      succeed.  (Aaron Bentley)
 
14
 
 
15
    * ``bzr conflicts`` now takes --text to list pathnames of text conflicts
 
16
      (Aaron Bentley)
 
17
 
 
18
    * Fix ``iter_lines_added_or_present_in_versions`` to use a set instead
 
19
      of a list while checking if a revision id was requested. Takes 10s
 
20
      off of the ``fileids_affected_by_revision_ids`` time, which is 10s
 
21
      of the ``bzr branch`` time. Also improve ``fileids_...`` time by
 
22
      filtering lines with a regex rather than multiple ``str.find()``
 
23
      calls. (saves another 300ms) (John Arbash Meinel)
 
24
 
 
25
    * Policy can be set for each configuration key. This allows keys to be
 
26
      inherited properly across configuration entries. For example, this
 
27
      should enable you to do::
 
28
        
 
29
        [/home/user/project]
 
30
        push_location = sftp://host/srv/project/
 
31
        push_location:policy = appendpath
 
32
 
 
33
      And then a branch like ``/home/user/project/mybranch`` should get an
 
34
      automatic push location of ``sftp://host/srv/project/mybranch``.
 
35
      (James Henstridge)
 
36
 
 
37
    * Added ``bzr status --short`` to make status report svn style flags
 
38
      for each file.  For example::
 
39
 
 
40
        $ bzr status --short
 
41
        A  foo
 
42
        A  bar
 
43
        D  baz
 
44
        ?  wooley
 
45
 
 
46
  INTERNALS:
 
47
 
 
48
    * Change Revision serialization to only write out millisecond
 
49
      resolution. Rather than expecting floating point serialization to
 
50
      preserve more resolution than we need. (Henri Weichers, Martin Pool)
 
51
 
 
52
  BUG FIXES:
 
53
 
 
54
    * bzr now supports Win32 UNC path (e.g. \\HOST\path). 
 
55
      (Alexander Belchenko, #57869)
 
56
 
 
57
    * Replace broken fnmatch based ignore pattern matching with custom pattern
 
58
      matcher.
 
59
      (Kent Gibson, Jan Hudec #57637)
 
60
 
 
61
 
 
62
bzr 0.13  2006-12-05
 
63
    
 
64
  No changes from 0.13rc1
 
65
    
 
66
bzr 0.13rc1  2006-11-27
 
67
 
 
68
  IMPROVEMENTS:
 
69
 
 
70
    * New command ``bzr remove-tree`` allows the removal of the working
 
71
      tree from a branch.
 
72
      (Daniel Silverstone)
 
73
 
 
74
    * urllib uses shared keep-alive connections, so http 
 
75
      operations are substantially faster.
 
76
      (Vincent Ladeuil, #53654)
 
77
 
 
78
    * ``bzr export`` allows an optional branch parameter, to export a bzr
 
79
      tree from some other url. For example:
 
80
      ``bzr export bzr.tar.gz http://bazaar-vcs.org/bzr/bzr.dev``
 
81
      (Daniel Silverstone)
 
82
 
 
83
    * Added ``bzr help topics`` to the bzr help system. This gives a
 
84
      location for general information, outside of a specific command.
 
85
      This includes updates for ``bzr help revisionspec`` the first topic
 
86
      included. (Goffredo Baroncelli, John Arbash Meinel, #42714)
 
87
 
 
88
    * WSGI-compatible HTTP smart server.  See ``doc/http_smart_server.txt``.
 
89
      (Andrew Bennetts)
 
90
 
 
91
    * Knit files will now cache full texts only when the size of the
 
92
      deltas is as large as the size of the fulltext. (Or after 200
 
93
      deltas, whichever comes first). This has the most benefit on large
 
94
      files with small changes, such as the inventory for a large project.
 
95
      (eg For a project with 2500 files, and 7500 revisions, it changes
 
96
      the size of inventory.knit from 11MB to 5.4MB) (John Arbash Meinel)
 
97
 
 
98
  INTERNALS:
 
99
 
 
100
    * New -D option given before the command line turns on debugging output
 
101
      for particular areas.  -Derror shows tracebacks on all errors.
 
102
      (Martin Pool)
 
103
 
 
104
    * Clean up ``bzr selftest --benchmark bundle`` to correct an import,
 
105
      and remove benchmarks that take longer than 10min to run.
 
106
      (John Arbash Meinel)
 
107
 
 
108
    * Use ``time.time()`` instead of ``time.clock()`` to decide on
 
109
      progress throttling. Because ``time.clock()`` is actually CPU time,
 
110
      so over a high-latency connection, too many updates get throttled.
 
111
      (John Arbash Meinel)
 
112
 
 
113
    * ``MemoryTransport.list_dir()`` would strip the first character for
 
114
      files or directories in root directory. (John Arbash Meinel)
 
115
  
 
116
    * New ``ChrootTransportDecorator``, accessible via the ``chroot+`` url
 
117
      prefix.  It disallows any access to locations above a set URL.  (Andrew
 
118
      Bennetts)
 
119
 
 
120
  BUG FIXES:
 
121
 
 
122
    * ``bzrlib/bzrdir.py`` was directly referencing ``bzrlib.workingtree``,
 
123
      without importing it. This prevented ``bzr upgrade`` from working
 
124
      unless a plugin already imported ``bzrlib.workingtree``
 
125
      (John Arbash Meinel, #70716)
 
126
 
 
127
    * Suppress the traceback on invalid URLs (Vincent Ladeuil, #70803).
 
128
 
 
129
    * Give nicer error message when an http server returns a 403
 
130
      error code. (Vincent Ladeuil, #57644).
 
131
 
 
132
    * When a multi-range http GET request fails, try a single
 
133
      range one. If it fails too, forget about ranges. Remember that until 
 
134
      the death of the transport and propagates that to the clones.
 
135
      (Vincent Ladeuil, #62276, #62029).
 
136
 
 
137
    * Handles user/passwords supplied in url from command
 
138
      line (for the urllib implementation). Don't request already
 
139
      known passwords (Vincent Ladeuil, #42383, #44647, #48527)
 
140
 
 
141
    * _KnitIndex.add_versions() dictionary compresses revision ids as they
 
142
      are added. This fixes bug where fetching remote revisions records
 
143
      them as full references rather than integers. (John Arbash Meinel,
 
144
      #64789)
 
145
 
 
146
    * ``bzr ignore`` strips trailing slashes in patterns.
 
147
      Also ``bzr ignore`` rejects absolute paths. (Kent Gibson, #4559)
 
148
 
 
149
    * ``bzr ignore`` takes multiple arguments. (Cheuksan Edward Wang, #29488)
 
150
 
 
151
    * mv correctly handles paths that traverse symlinks. 
 
152
      (Aaron Bentley, #66964)
 
153
 
 
154
    * Give nicer looking error messages when failing to connect over ssh.
 
155
      (John Arbash Meinel, #49172)
 
156
 
 
157
    * Pushing to a remote branch does not currently update the remote working
 
158
      tree. After a remote push, ``bzr status`` and ``bzr diff`` on the remote
 
159
      machine now show that the working tree is out of date.
 
160
      (Cheuksan Edward Wang #48136)
 
161
 
 
162
    * Use patiencediff instead of difflib for determining deltas to insert
 
163
      into knits. This avoids the O(N^3) behavior of difflib. Patience
 
164
      diff should be O(N^2). (Cheuksan Edward Wang, #65714)
 
165
 
 
166
    * Running ``bzr log`` on nonexistent file gives an error instead of the
 
167
      entire log history. (Cheuksan Edward Wang #50793)
 
168
 
 
169
    * ``bzr cat`` can look up contents of removed or renamed files. If the
 
170
      pathname is ambiguous, i.e. the files in the old and new trees have
 
171
      different id's, the default is the file in the new tree. The user can
 
172
      use "--name-from-revision" to select the file in the old tree.
 
173
      (Cheuksan Edward Wang, #30190)
 
174
 
 
175
  TESTING:
 
176
 
 
177
    * TestingHTTPRequestHandler really handles the Range header
 
178
      (previously it was ignoring it and returning the whole file,).
 
179
 
 
180
bzr 0.12  2006-10-30
 
181
 
 
182
  INTERNALS:
 
183
 
 
184
    * Clean up ``bzr selftest --benchmark bundle`` to correct an import,
 
185
      and remove benchmarks that take longer than 10min to run.
 
186
      (John Arbash Meinel)
 
187
  
 
188
bzr 0.12rc1  2006-10-23
 
189
 
 
190
  IMPROVEMENTS:
 
191
 
 
192
    * ``bzr log`` now shows dotted-decimal revision numbers for all revisions,
 
193
      rather than just showing a decimal revision number for revisions on the
 
194
      mainline. These revision numbers are not yet accepted as input into bzr
 
195
      commands such as log, diff etc. (Robert Collins)
 
196
 
 
197
    * revisions can now be specified using dotted-decimal revision numbers.
 
198
      For instance, ``bzr diff -r 1.2.1..1.2.3. (Robert Collins)
 
199
 
 
200
    * ``bzr help commands`` output is now shorter (Aaron Bentley)
 
201
 
 
202
    * New connection: ``bzr+http://`` which supports tunnelling the smart
 
203
      protocol over an HTTP connection. If writing is enabled on the bzr
 
204
      server, then you can write over the http connection.
 
205
      (Andrew Bennetts)
 
206
 
 
207
    * ``bzr`` now uses lazy importing to reduce the startup time. This has
 
208
      a moderate effect on lots of actions, especially ones that have
 
209
      little to do. For example ``bzr rocks`` time is down to 116ms from
 
210
      283ms. (John Arbash Meinel)
 
211
 
 
212
    * New Registry class to provide name-to-object registry-like support,
 
213
      for example for schemes where plugins can register new classes to
 
214
      do certain tasks (e.g. log formatters). Also provides lazy registration
 
215
      to allow modules to be loaded on request. (John Arbash Meinel, Adeodato
 
216
      Simó)
 
217
 
 
218
  API INCOMPATABILITY:
 
219
  
 
220
    * LogFormatter subclasses show now expect the 'revno' parameter to 
 
221
      show() to be a string rather than an int. (Robert Collins)
 
222
 
 
223
  INTERNALS:
 
224
 
 
225
    * ``TestCase.run_bzr``, ``run_bzr_captured``, and ``run_bzr_subprocess``
 
226
      can take a ``working_dir='foo'`` parameter, which will change directory 
 
227
      for the command. (John Arbash Meinel)
 
228
 
 
229
    * ``bzrlib.lazy_regex.lazy_compile`` can be used to create a proxy
 
230
      around a regex, which defers compilation until first use. 
 
231
      (John Arbash Meinel)
 
232
 
 
233
    * ``TestCase.run_bzr_subprocess`` defaults to supplying the
 
234
      ``--no-plugins`` parameter to ensure test reproducability, and avoid
 
235
      problems with system-wide installed plugins. (John Arbash Meinel)
 
236
 
 
237
    * Unique tree root ids are now supported. Newly created trees still
 
238
      use the common root id for compatibility with bzr versions before 0.12.
 
239
      (Aaron Bentley)
 
240
 
 
241
    * ``WorkingTree.set_root_id(None)`` is now deprecated. Please
 
242
      pass in inventory.ROOT_ID if you want the default root id value.
 
243
      (Robert Collins, John Arbash Meinel)
 
244
 
 
245
    * New method ``WorkingTree.flush()`` which will write the current memory
 
246
      inventory out to disk. At the same time, read_working_inventory will
 
247
      no longer trash the current tree inventory if it has been modified within
 
248
      the current lock, and the tree will now ``flush()`` automatically on
 
249
      ``unlock()``. ``WorkingTree.set_root_id()`` has been updated to take
 
250
      advantage of this functionality. (Robert Collins, John Arbash Meinel)
 
251
 
 
252
    * ``bzrlib.tsort.merge_sorted`` now accepts ``generate_revnos``. This
 
253
      parameter will cause it to add another column to its output, which
 
254
      contains the dotted-decimal revno for each revision, as a tuple.
 
255
      (Robert Collins)
 
256
 
 
257
    * ``LogFormatter.show_merge`` is deprecated in favour of
 
258
      ``LogFormatter.show_merge_revno``. (Robert Collins)
 
259
 
 
260
  BUG FIXES:
 
261
 
 
262
    * Avoid circular imports by creating a deprecated function for
 
263
      ``bzrlib.tree.RevisionTree``. Callers should have been using
 
264
      ``bzrlib.revisontree.RevisionTree`` anyway. (John Arbash Meinel,
 
265
      #63360, #66349)
 
266
 
 
267
    * Don't use ``socket.MSG_WAITALL`` as it doesn't exist on all
 
268
      platforms. (Martin Pool, #66356)
 
269
 
 
270
    * Don't require ``Content-Type`` in range responses. Assume they are a
 
271
      single range if ``Content-Type`` does not exist.
 
272
      (John Arbash Meinel, #62473)
 
273
 
 
274
    * bzr branch/pull no longer complain about progress bar cleanup when
 
275
      interrupted during fetch.  (Aaron Bentley, #54000)
 
276
 
 
277
    * ``WorkingTree.set_parent_trees()`` uses the trees to directly write
 
278
      the basis inventory, rather than going through the repository. This
 
279
      allows us to have 1 inventory read, and 2 inventory writes when
 
280
      committing a new tree. (John Arbash Meinel)
 
281
 
 
282
    * When reverting, files that are not locally modified that do not exist
 
283
      in the target are deleted, not just unversioned (Aaron Bentley)
 
284
 
 
285
    * When trying to acquire a lock, don't fail immediately. Instead, try
 
286
      a few times (up to 1 hour) before timing out. Also, report why the
 
287
      lock is unavailable (John Arbash Meinel, #43521, #49556)
 
288
 
 
289
    * Leave HttpTransportBase daughter classes decides how they
 
290
      implement cloning. (Vincent Ladeuil, #61606)
 
291
 
 
292
    * diff3 does not indicate conflicts on clean merge. (Aaron Bentley)
 
293
 
 
294
    * If a commit fails, the commit message is stored in a file at the root of
 
295
      the tree for later commit. (Cheuksan Edward Wang, Stefan Metzmacher,
 
296
      #32054)
 
297
 
 
298
  TESTING:
 
299
 
 
300
    * New test base class TestCaseWithMemoryTransport offers memory-only
 
301
      testing facilities: its not suitable for tests that need to mutate disk
 
302
      state, but most tests should not need that and should be converted to
 
303
      TestCaseWithMemoryTransport. (Robert Collins)
 
304
 
 
305
    * ``TestCase.make_branch_and_memory_tree`` now takes a format
 
306
      option to set the BzrDir, Repository and Branch formats of the
 
307
      created objects. (Robert Collins, John Arbash Meinel)
 
308
 
 
309
bzr 0.11  2006-10-02
 
310
 
 
311
    * Smart server transport test failures on windows fixed. (Lukáš Lalinský).
 
312
 
 
313
bzr 0.11rc2  2006-09-27
 
314
 
 
315
  BUG FIXES:
 
316
 
 
317
    * Test suite hangs on windows fixed. (Andrew Bennets, Alexander Belchenko).
 
318
    
 
319
    * Commit performance regression fixed. (Aaron Bentley, Robert Collins, John
 
320
      Arbash Meinel).
 
321
 
 
322
bzr 0.11rc1  2006-09-25
 
323
 
 
324
  IMPROVEMENTS:
 
325
 
 
326
    * Knit files now wait to create their contents until the first data is
 
327
      added. The old code used to create an empty .knit and a .kndx with just
 
328
      the header. However, this caused a lot of extra round trips over sftp.
 
329
      This can change the time for ``bzr push`` to create a new remote branch
 
330
      from 160s down to 100s. This also affects ``bzr commit`` performance when
 
331
      adding new files, ``bzr commit`` on a new kernel-like tree drops from 50s
 
332
      down to 40s (John Arbash Meinel, #44692)
 
333
 
 
334
    * When an entire subtree has been deleted, commit will now report that
 
335
      just the top of the subtree has been deleted, rather than reporting
 
336
      all the individual items. (Robert Collins)
 
337
 
 
338
    * Commit performs one less XML parse. (Robert Collins)
 
339
 
 
340
    * ``bzr checkout`` now operates on readonly branches as well
 
341
      as readwrite branches. This fixes bug #39542. (Robert Collins)
 
342
 
 
343
    * ``bzr bind`` no longer synchronises history with the master branch.
 
344
      Binding should be followed by an update or push to synchronise the 
 
345
      two branches. This is closely related to the fix for bug #39542.
 
346
      (Robert Collins)
 
347
 
 
348
    * ``bzrlib.lazy_import.lazy_import`` function to create on-demand 
 
349
      objects.  This allows all imports to stay at the global scope, but
 
350
      modules will not actually be imported if they are not used.
 
351
      (John Arbash Meinel)
 
352
 
 
353
    * Support bzr:// and bzr+ssh:// urls to work with the new RPC-based
 
354
      transport which will be used with the upcoming high-performance smart
 
355
      server. The new command ``bzr serve`` will invoke bzr in server mode,
 
356
      which processes these requests. (Andrew Bennetts, Robert Collins, Martin
 
357
      Pool)
 
358
 
 
359
    * New command ``bzr version-info`` which can be used to get a summary
 
360
      of the current state of the tree. This is especially useful as part
 
361
      of a build commands. See ``doc/version_info.txt`` for more information 
 
362
      (John Arbash Meinel)
 
363
 
 
364
  BUG FIXES:
 
365
 
 
366
    * 'bzr inventory [FILE...]' allows restricting the file list to a
 
367
      specific set of files. (John Arbash Meinel, #3631)
 
368
 
 
369
    * Don't abort when annotating empty files (John Arbash Meinel, #56814)
 
370
 
 
371
    * Add ``Stanza.to_unicode()`` which can be passed to another Stanza
 
372
      when nesting stanzas. Also, add ``read_stanza_unicode`` to handle when
 
373
      reading a nested Stanza. (John Arbash Meinel)
 
374
 
 
375
    * Transform._set_mode() needs to stat the right file. 
 
376
      (John Arbash Meinel, #56549)
 
377
 
 
378
    * Raise WeaveFormatError rather than StopIteration when trying to read
 
379
      an empty Weave file. (John Arbash Meinel, #46871)
 
380
 
 
381
    * Don't access e.code for generic URLErrors, only HTTPErrors have .code.
 
382
      (Vincent Ladeuil, #59835)
 
383
 
 
384
    * Handle boundary="" lines properly to allow access through a Squid proxy.
 
385
      (John Arbash Meinel, #57723)
 
386
 
 
387
    * revert now removes newly-added directories (Aaron Bentley, #54172)
 
388
 
 
389
    * ``bzr upgrade sftp://`` shouldn't fail to upgrade v6 branches if there 
 
390
      isn't a working tree. (David Allouche, #40679)
 
391
 
 
392
    * Give nicer error messages when a user supplies an invalid --revision
 
393
      parameter. (John Arbash Meinel, #55420)
 
394
 
 
395
    * Handle when LANG is not recognized by python. Emit a warning, but
 
396
      just revert to using 'ascii'. (John Arbash Meinel, #35392)
 
397
 
 
398
    * Don't use preexec_fn on win32, as it is not supported by subprocess.
 
399
      (John Arbash Meinel)
 
400
 
 
401
    * Skip specific tests when the dependencies aren't met. This includes
 
402
      some ``setup.py`` tests when ``python-dev`` is not available, and
 
403
      some tests that depend on paramiko. (John Arbash Meinel, Mattheiu Moy)
 
404
 
 
405
    * Fallback to Paramiko properly, if no ``ssh`` executable exists on
 
406
      the system. (Andrew Bennetts, John Arbash Meinel)
 
407
 
 
408
    * ``Branch.bind(other_branch)`` no longer takes a write lock on the
 
409
      other branch, and will not push or pull between the two branches.
 
410
      API users will need to perform a push or pull or update operation if they
 
411
      require branch synchronisation to take place. (Robert Collins, #47344)
 
412
 
 
413
    * When creating a tarball or zipfile export, export unicode names as utf-8
 
414
      paths. This may not work perfectly on all platforms, but has the best
 
415
      chance of working in the common case. (John Arbash Meinel, #56816)
 
416
 
 
417
    * When committing, only files that exist in working tree or basis tree
 
418
      may be specified (Aaron Bentley, #50793)
 
419
 
 
420
  PORTABILITY:
 
421
 
 
422
    * Fixes to run on Python 2.5 (Brian M. Carlson, Martin Pool, Marien Zwart)
 
423
 
 
424
  INTERNALS:
 
425
 
 
426
    * TestCaseInTempDir now creates a separate directory for HOME, rather
 
427
      than having HOME set to the same location as the working directory.
 
428
      (John Arbash Meinel)
 
429
 
 
430
    * run_bzr_subprocess() can take an optional 'env_changes={}' parameter,
 
431
      which will update os.environ inside the spawned child. It also can
 
432
      take a 'universal_newlines=True', which helps when checking the output
 
433
      of the command. (John Arbash Meinel)
 
434
 
 
435
    * Refactor SFTP vendors to allow easier re-use when ssh is used. 
 
436
      (Andrew Bennetts)
 
437
 
 
438
    * Transport.list_dir() and Transport.iter_files_recursive() should always
 
439
      return urlescaped paths. This is now tested (there were bugs in a few
 
440
      of the transports) (Andrew Bennetts, David Allouche, John Arbash Meinel)
 
441
 
 
442
    * New utility function symbol_versioning.deprecation_string. Returns the
 
443
      formatted string for a callable, deprecation format pair. (Robert Collins)
 
444
 
 
445
    * New TestCase helper applyDeprecated. This allows you to call a callable
 
446
      which is deprecated without it spewing to the screen, just by supplying
 
447
      the deprecation format string issued for it. (Robert Collins)
 
448
 
 
449
    * Transport.append and Transport.put have been deprecated in favor of
 
450
      .append_bytes, .append_file, .put_bytes, and .put_file. This removes the
 
451
      ambiguity in what type of object the functions take.
 
452
      Transport.non_atomic_put_{bytes,file} has also been added. Which works
 
453
      similarly to Transport.append() except for SFTP, it doesn't have a round
 
454
      trip when opening the file. Also, it provides functionality for creating
 
455
      a parent directory when trying to create a file, rather than raise
 
456
      NoSuchFile and forcing the caller to repeat their request.
 
457
      (John Arbash Meinel)
 
458
 
 
459
    * WorkingTree has a new api ``unversion`` which allow the unversioning of
 
460
      entries by their file id. (Robert Collins)
 
461
 
 
462
    * WorkingTree.pending_merges is deprecated.  Please use the get_parent_ids
 
463
      (introduced in 0.10) method instead. (Robert Collins)
 
464
 
 
465
    * WorkingTree has a new lock_tree_write method which locks the branch for
 
466
      read rather than write. This is appropriate for actions which only need
 
467
      the branch data for reference rather than mutation. A new decorator
 
468
      needs_tree_write_lock is provided in the workingtree module. Like the
 
469
      needs_read_lock and needs_write_lock decorators this allows static 
 
470
      declaration of the locking requirements of a function to ensure that
 
471
      a lock is taken out for casual scripts. (Robert Collins, #54107)
 
472
 
 
473
    * All WorkingTree methods which write to the tree, but not to the branch
 
474
      have been converted to use ``needs_tree_write_lock`` rather than 
 
475
      ``needs_write_lock``. Also converted is the revert, conflicts and tree
 
476
      transform modules. This provides a modest performance improvement on 
 
477
      metadir style trees, due to the reduce lock-acquisition, and a more
 
478
      significant performance improvement on lightweight checkouts from 
 
479
      remote branches, where trivial operations used to pay a significant 
 
480
      penalty. It also provides the basis for allowing readonly checkouts.
 
481
      (Robert Collins)
 
482
 
 
483
    * Special case importing the standard library 'copy' module. This shaves
 
484
      off 40ms of startup time, while retaining compatibility. See:
 
485
      ``bzrlib/inspect_for_copy.py`` for more details. (John Arbash Meinel)
 
486
 
 
487
    * WorkingTree has a new parent class MutableTree which represents the 
 
488
      specialisations of Tree which are able to be altered. (Robert Collins)
 
489
 
 
490
    * New methods mkdir and put_file_bytes_non_atomic on MutableTree that
 
491
      mutate the tree and its contents. (Robert Collins)
 
492
 
 
493
    * Transport behaviour at the root of the URL is now defined and tested.
 
494
      (Andrew Bennetts, Robert Collins)
 
495
 
 
496
  TESTING:
 
497
 
 
498
    * New test helper classs MemoryTree. This is typically accessed via
 
499
      ``self.make_branch_and_memory_tree()`` in test cases. (Robert Collins)
 
500
      
 
501
    * Add start_bzr_subprocess and stop_bzr_subprocess to allow test code to
 
502
      continue running concurrently with a subprocess of bzr. (Andrew Bennetts,
 
503
      Robert Collins)
 
504
 
 
505
    * Add a new method ``Transport.get_smart_client()``. This is provided to
 
506
      allow upgrades to a richer interface than the VFS one provided by
 
507
      Transport. (Andrew Bennetts, Martin Pool)
 
508
 
 
509
bzr 0.10  2006-08-29
 
510
  
 
511
  IMPROVEMENTS:
 
512
    * 'merge' now takes --uncommitted, to apply uncommitted changes from a
 
513
      tree.  (Aaron Bentley)
 
514
  
 
515
    * 'bzr add --file-ids-from' can be used to specify another path to use
 
516
      for creating file ids, rather than generating all new ones. Internally,
 
517
      the 'action' passed to smart_add_tree() can return file_ids that
 
518
      will be used, rather than having bzrlib generate new ones.
 
519
      (John Arbash Meinel, #55781)
 
520
 
 
521
    * ``bzr selftest --benchmark`` now allows a ``--cache-dir`` parameter.
 
522
      This will cache some of the intermediate trees, and decrease the
 
523
      setup time for benchmark tests. (John Arbash Meinel)
 
524
 
 
525
    * Inverse forms are provided for all boolean options.  For example,
 
526
      --strict has --no-strict, --no-recurse has --recurse (Aaron Bentley)
 
527
 
 
528
    * Serialize out Inventories directly, rather than using ElementTree.
 
529
      Writing out a kernel sized inventory drops from 2s down to ~350ms.
 
530
      (Robert Collins, John Arbash Meinel)
 
531
 
 
532
  BUG FIXES:
 
533
 
 
534
    * Help diffutils 2.8.4 get along with binary tests (Marien Zwart: #57614)
 
535
 
 
536
    * Change LockDir so that if the lock directory doesn't exist when
 
537
      lock_write() is called, an attempt will be made to create it.
 
538
      (John Arbash Meinel, #56974)
 
539
 
 
540
    * ``bzr uncommit`` preserves pending merges. (John Arbash Meinel, #57660)
 
541
 
 
542
    * Active FTP transport now works as intended. (ghozzy, #56472)
 
543
 
 
544
    * Really fix mutter() so that it won't ever raise a UnicodeError.
 
545
      It means it is possible for ~/.bzr.log to contain non UTF-8 characters.
 
546
      But it is a debugging log, not a real user file.
 
547
      (John Arbash Meinel, #56947, #53880)
 
548
 
 
549
    * Change Command handle to allow Unicode command and options.
 
550
      At present we cannot register Unicode command names, so we will get
 
551
      BzrCommandError('unknown command'), or BzrCommandError('unknown option')
 
552
      But that is better than a UnicodeError + a traceback.
 
553
      (John Arbash Meinel, #57123)
 
554
 
 
555
    * Handle TZ=UTC properly when reading/writing revisions.
 
556
      (John Arbash Meinel, #55783, #56290)
 
557
 
 
558
    * Use GPG_TTY to allow gpg --cl to work with gpg-agent in a pipeline,
 
559
      (passing text to sign in on stdin). (John Arbash Meinel, #54468)
 
560
 
 
561
    * External diff does the right thing for binaries even in foreign 
 
562
      languages. (John Arbash Meinel, #56307)
 
563
 
 
564
    * Testament handles more cases when content is unicode. Specific bug was
 
565
      in handling of revision properties. (John Arbash Meinel, Holger Krekel,
 
566
      #54723)
 
567
 
 
568
    * The bzr selftest was failing on installed versions due to a bug in a new
 
569
      test helper. (John Arbash Meinel, Robert Collins, #58057)
 
570
 
 
571
  INTERNALS:
 
572
 
 
573
    * ``bzrlib.cache_utf8`` contains ``encode()`` and ``decode()`` functions
 
574
      which can be used to cache the conversion between utf8 and Unicode.
 
575
      Especially helpful for some of the knit annotation code, which has to
 
576
      convert revision ids to utf8 to annotate lines in storage.
 
577
      (John Arbash Meinel)
 
578
 
 
579
    * ``setup.py`` now searches the filesystem to find all packages which
 
580
      need to be installed. This should help make the life of packagers
 
581
      easier. (John Arbash Meinel)
 
582
 
 
583
bzr 0.9.0  2006-08-11
 
584
 
 
585
  SURPRISES:
 
586
 
 
587
   * The hard-coded built-in ignore rules have been removed. There are
 
588
     now two rulesets which are enforced. A user global one in 
 
589
     ~/.bazaar/ignore which will apply to every tree, and the tree
 
590
     specific one '.bzrignore'.
 
591
     ~/.bazaar/ignore will be created if it does not exist, but with
 
592
     a more conservative list than the old default.
 
593
     This fixes bugs with default rules being enforced no matter what. 
 
594
     The old list of ignore rules from bzr is available by
 
595
     running 'bzr ignore --old-default-rules'.
 
596
     (Robert Collins, Martin Pool, John Arbash Meinel)
 
597
 
 
598
   * 'branches.conf' has been changed to 'locations.conf', since it can apply
 
599
     to more locations than just branch locations.
 
600
     (Aaron Bentley)
 
601
   
 
602
  IMPROVEMENTS:
 
603
 
5
604
   * The revision specifier "revno:" is extended to accept the syntax
6
605
     revno:N:branch. For example,
7
606
     revno:42:http://bazaar-vcs.org/bzr/bzr.dev/ means revision 42 in
8
607
     bzr.dev.  (Matthieu Moy)
9
608
 
10
 
   * No default ignore rules are applied by bzr - only the rules in .bzrignore
11
 
     are considered. This fixes bugs with default rules being enforced no
12
 
     matter what. The old list of ignore rules from bzr is available by
13
 
     running 'bzr ignore --old-default-rules'.
14
 
 
15
609
   * Tests updates to ensure proper URL handling, UNICODE support, and
16
610
     proper printing when the user's terminal encoding cannot display 
17
611
     the path of a file that has been versioned.
38
632
   * 'bzr selftest' now shows a progress bar with the number of tests, and 
39
633
     progress made. 'make check' shows tests in -v mode, to be more useful
40
634
     for the PQM status window. (Robert Collins).
 
635
     When using a progress bar, failed tests are printed out, rather than
 
636
     being overwritten by the progress bar until the suite finishes.
 
637
     (John Arbash Meinel)
41
638
 
42
639
   * 'bzr selftest --benchmark' will run a new benchmarking selftest.
43
640
     'bzr selftest --benchmark --lsprof-timed' will use lsprofile to generate
71
668
     the same way you would apply another branch.
72
669
     (John Arbash Meinel, Aaron Bentley)
73
670
  
74
 
   * 'branches.conf' has been changed to 'locations.conf', since it can apply
75
 
     to more locations than just branch locations.
76
 
     (Aaron Bentley)
77
 
   
78
671
   * 'bzr whoami' can now be used to set your identity from the command line,
79
672
     for a branch or globally.  (Robey Pointer)
80
673
 
92
685
     Can be set to 'none' or 'dummy' to disable the progress bar, 'dots' or 
93
686
     'tty' to create the respective type. (John Arbash Meinel, #42197, #51107)
94
687
 
 
688
   * Improve the help text for 'bzr diff' to explain what various options do.
 
689
     (John Arbash Meinel, #6391)
 
690
 
 
691
   * 'bzr uncommit -r 10' now uncommits revisions 11.. rather than uncommitting
 
692
     revision 10. This makes -r10 more in line with what other commands do.
 
693
     'bzr uncommit' also now saves the pending merges of the revisions that
 
694
     were removed. So it is safe to uncommit after a merge, fix something,
 
695
     and commit again. (John Arbash Meinel, #32526, #31426)
 
696
 
 
697
   * 'bzr init' now also works on remote locations.
 
698
     (Wouter van Heyst, #48904)
 
699
 
 
700
   * HTTP support has been updated. When using pycurl we now support 
 
701
     connection keep-alive, which reduces dns requests and round trips.
 
702
     And for both urllib and pycurl we support multi-range requests, 
 
703
     which decreases the number of round-trips. Performance results for
 
704
     ``bzr branch http://bazaar-vcs.org/bzr/bzr.dev/`` indicate
 
705
     http branching is now 2-3x faster, and ``bzr pull`` in an existing 
 
706
     branch is as much as 4x faster.
 
707
     (Michael Ellerman, Johan Rydberg, John Arbash Meinel, #46768)
 
708
 
 
709
   * Performance improvements for sftp. Branching and pulling are now up to
 
710
     2x faster. Utilize paramiko.readv() support for async requests if it
 
711
     is available (paramiko > 1.6) (John Arbash Meinel)
 
712
 
95
713
  BUG FIXES:
96
714
 
97
715
    * Fix shadowed definition of TestLocationConfig that caused some 
142
760
 
143
761
    * Support ftp APPE (append) to allow Knits to be used over ftp (#42592)
144
762
 
 
763
    * Removals are only committed if they match the filespec (or if there is
 
764
      no filespec).  (#46635, Aaron Bentley)
 
765
 
 
766
    * smart-add recurses through all supplied directories 
 
767
      (John Arbash Meinel, #52578)
 
768
 
 
769
    * Make the bundle reader extra lines before and after the bundle text.
 
770
      This allows you to parse an email with the bundle inline.
 
771
      (John Arbash Meinel, #49182)
 
772
 
 
773
    * Change the file id generator to squash a little bit more. Helps when
 
774
      working with long filenames on windows. (Also helps for unicode filenames
 
775
      not generating hidden files). (John Arbash Meinel, #43801)
 
776
 
 
777
    * Restore terminal mode on C-c while reading sftp password.  (#48923, 
 
778
      Nicholas Allen, Martin Pool)
 
779
 
 
780
    * Timestamps are rounded to 1ms, and revision entries can be recreated
 
781
      exactly. (John Arbash Meinel, Jamie Wilkinson, #40693)
 
782
 
 
783
    * Branch.base has changed to a URL, but ~/.bazaar/locations.conf should
 
784
      use local paths, since it is user visible (John Arbash Meinel, #53653)
 
785
 
 
786
    * ``bzr status foo`` when foo was unversioned used to cause a full delta
 
787
      to be generated (John Arbash Meinel, #53638)
 
788
 
 
789
    * When reading revision properties, an empty value should be considered
 
790
      the empty string, not None (John Arbash Meinel, #47782)
 
791
 
 
792
    * ``bzr diff --diff-options`` can now handle binary files being changed.
 
793
      Also, the output is consistent when --diff-options is not supplied.
 
794
      (John Arbash Meinel, #54651, #52930)
 
795
 
 
796
    * Use the right suffixes for loading plugins (John Arbash Meinel, #51810)
 
797
 
 
798
    * Fix Branch.get_parent() to handle the case when the parent is not 
 
799
      accessible (John Arbash Meinel, #52976)
 
800
 
145
801
  INTERNALS:
146
802
 
147
803
    * Combine the ignore rules into a single regex rather than looping over
148
804
      them to reduce the threshold where  N^2 behaviour occurs in operations
149
805
      like status. (Jan Hudec, Robert Collins).
150
806
 
 
807
    * Appending to bzrlib.DEFAULT_IGNORE is now deprecated. Instead, use
 
808
      one of the add functions in bzrlib.ignores. (John Arbash Meinel)
 
809
 
151
810
    * 'bzr push' should only push the ancestry of the current revision, not
152
811
      all of the history in the repository. This is especially important for
153
812
      shared repositories. (John Arbash Meinel)
179
838
      importer to log time to import modules and regex compilation time to 
180
839
      sys.stderr (John Arbash Meinel)
181
840
 
 
841
    * 'EmptyTree' is now deprecated, please use repository.revision_tree(None)
 
842
      instead. (Robert Collins)
 
843
 
 
844
    * "RevisionTree" is now in bzrlib/revisiontree.py. (Robert Collins)
 
845
 
182
846
bzr 0.8.2  2006-05-17
183
847
  
184
848
  BUG FIXES:
890
1554
    * Config options have moved from bzrlib.osutils to bzrlib.config.
891
1555
      Configuration is now done via the config.Config interface:
892
1556
      Depending on whether you have a Branch, a Location or no information
893
 
      available, construct a *Config, and use its signature_checking,
894
 
      username and user_email methods. (Robert Collins)
 
1557
      available, construct a ``*Config``, and use its ``signature_checking``,
 
1558
      ``username`` and ``user_email`` methods. (Robert Collins)
895
1559
 
896
1560
    * Plugins are now loaded under bzrlib.plugins, not bzrlib.plugin, and
897
1561
      they are made available for other plugins to use. You should not 
1043
1707
    * Symlink support: working with symlinks when not in the root of a 
1044
1708
      bzr tree was broken, patch from Scott James Remnant.
1045
1709
 
1046
 
 
1047
1710
  IMPROVEMENTS:
1048
1711
 
1049
1712
    * 'branch' now accepts a --basis parameter which will take advantage