~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to NEWS

  • Committer: John Arbash Meinel
  • Date: 2006-08-14 16:16:53 UTC
  • mto: (1946.2.6 reduce-knit-churn)
  • mto: This revision was merged to the branch mainline in revision 1919.
  • Revision ID: john@arbash-meinel.com-20060814161653-54cdcdadcd4e9003
Remove bogus entry from BRANCH.TODO

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
IN DEVELOPMENT
2
 
 
3
 
  IMPROVEMENTS:
4
 
 
5
 
  INTERNALS:
6
 
 
7
 
  BUG FIXES:
8
 
 
9
 
    * mv correctly handles paths that traverse symlinks. 
10
 
      (Aaron Bentley, #66964)
11
 
 
12
 
    * Pushing to a remote branch does not currently update the remote working
13
 
      tree. After a remote push, ``bzr status`` and ``bzr diff`` on the remote
14
 
      machine now show that the working tree is out of date.
15
 
      (Cheuksan Edward Wang #48136)
16
 
 
17
 
 
18
 
bzr 0.12rc1  2006-10-23
19
 
 
20
 
  IMPROVEMENTS:
21
 
 
22
 
    * ``bzr log`` now shows dotted-decimal revision numbers for all revisions,
23
 
      rather than just showing a decimal revision number for revisions on the
24
 
      mainline. These revision numbers are not yet accepted as input into bzr
25
 
      commands such as log, diff etc. (Robert Collins)
26
 
 
27
 
    * revisions can now be specified using dotted-decimal revision numbers.
28
 
      For instance, ``bzr diff -r 1.2.1..1.2.3. (Robert Collins)
29
 
 
30
 
    * ``bzr help commands`` output is now shorter (Aaron Bentley)
31
 
 
32
 
    * New connection: ``bzr+http://`` which supports tunnelling the smart
33
 
      protocol over an HTTP connection. If writing is enabled on the bzr
34
 
      server, then you can write over the http connection.
35
 
      (Andrew Bennetts)
36
 
 
37
 
    * ``bzr`` now uses lazy importing to reduce the startup time. This has
38
 
      a moderate effect on lots of actions, especially ones that have
39
 
      little to do. For example ``bzr rocks`` time is down to 116ms from
40
 
      283ms. (John Arbash Meinel)
41
 
 
42
 
    * New Registry class to provide name-to-object registry-like support,
43
 
      for example for schemes where plugins can register new classes to
44
 
      do certain tasks (e.g. log formatters). Also provides lazy registration
45
 
      to allow modules to be loaded on request. (John Arbash Meinel, Adeodato
46
 
      Simó)
47
 
 
48
 
  API INCOMPATABILITY:
49
 
  
50
 
    * LogFormatter subclasses show now expect the 'revno' parameter to 
51
 
      show() to be a string rather than an int. (Robert Collins)
52
 
 
53
 
  INTERNALS:
54
 
 
55
 
    * ``TestCase.run_bzr``, ``run_bzr_captured``, and ``run_bzr_subprocess``
56
 
      can take a ``working_dir='foo'`` parameter, which will change directory 
57
 
      for the command. (John Arbash Meinel)
58
 
 
59
 
    * ``bzrlib.lazy_regex.lazy_compile`` can be used to create a proxy
60
 
      around a regex, which defers compilation until first use. 
61
 
      (John Arbash Meinel)
62
 
 
63
 
    * ``TestCase.run_bzr_subprocess`` defaults to supplying the
64
 
      ``--no-plugins`` parameter to ensure test reproducability, and avoid
65
 
      problems with system-wide installed plugins. (John Arbash Meinel)
66
 
 
67
 
    * Unique tree root ids are now supported. Newly created trees still
68
 
      use the common root id for compatibility with bzr versions before 0.12.
69
 
      (Aaron Bentley)
70
 
 
71
 
    * ``WorkingTree.set_root_id(None)`` is now deprecated. Please
72
 
      pass in inventory.ROOT_ID if you want the default root id value.
73
 
      (Robert Collins, John Arbash Meinel)
74
 
 
75
 
    * New method ``WorkingTree.flush()`` which will write the current memory
76
 
      inventory out to disk. At the same time, read_working_inventory will
77
 
      no longer trash the current tree inventory if it has been modified within
78
 
      the current lock, and the tree will now ``flush()`` automatically on
79
 
      ``unlock()``. ``WorkingTree.set_root_id()`` has been updated to take
80
 
      advantage of this functionality. (Robert Collins, John Arbash Meinel)
81
 
 
82
 
    * ``bzrlib.tsort.merge_sorted`` now accepts ``generate_revnos``. This
83
 
      parameter will cause it to add another column to its output, which
84
 
      contains the dotted-decimal revno for each revision, as a tuple.
85
 
      (Robert Collins)
86
 
 
87
 
    * ``LogFormatter.show_merge`` is deprecated in favour of
88
 
      ``LogFormatter.show_merge_revno``. (Robert Collins)
89
 
 
90
 
  BUG FIXES:
91
 
 
92
 
    * Avoid circular imports by creating a deprecated function for
93
 
      ``bzrlib.tree.RevisionTree``. Callers should have been using
94
 
      ``bzrlib.revisontree.RevisionTree`` anyway. (John Arbash Meinel,
95
 
      #63360, #66349)
96
 
 
97
 
    * Don't use ``socket.MSG_WAITALL`` as it doesn't exist on all
98
 
      platforms. (Martin Pool, #66356)
99
 
 
100
 
    * Don't require ``Content-Type`` in range responses. Assume they are a
101
 
      single range if ``Content-Type`` does not exist.
102
 
      (John Arbash Meinel, #62473)
103
 
 
104
 
    * bzr branch/pull no longer complain about progress bar cleanup when
105
 
      interrupted during fetch.  (Aaron Bentley, #54000)
106
 
 
107
 
    * ``WorkingTree.set_parent_trees()`` uses the trees to directly write
108
 
      the basis inventory, rather than going through the repository. This
109
 
      allows us to have 1 inventory read, and 2 inventory writes when
110
 
      committing a new tree. (John Arbash Meinel)
111
 
 
112
 
    * When reverting, files that are not locally modified that do not exist
113
 
      in the target are deleted, not just unversioned (Aaron Bentley)
114
 
 
115
 
    * When trying to acquire a lock, don't fail immediately. Instead, try
116
 
      a few times (up to 1 hour) before timing out. Also, report why the
117
 
      lock is unavailable (John Arbash Meinel, #43521, #49556)
118
 
 
119
 
    * Leave HttpTransportBase daughter classes decides how they
120
 
      implement cloning. (Vincent Ladeuil, #61606)
121
 
 
122
 
   * diff3 does not indicate conflicts on clean merge. (Aaron Bentley)
123
 
 
124
 
  TESTING:
125
 
 
126
 
    * New test base class TestCaseWithMemoryTransport offers memory-only
127
 
      testing facilities: its not suitable for tests that need to mutate disk
128
 
      state, but most tests should not need that and should be converted to
129
 
      TestCaseWithMemoryTransport. (Robert Collins)
130
 
 
131
 
    * ``TestCase.make_branch_and_memory_tree`` now takes a format
132
 
      option to set the BzrDir, Repository and Branch formats of the
133
 
      created objects. (Robert Collins, John Arbash Meinel)
134
 
 
135
 
bzr 0.11  2006-10-02
136
 
 
137
 
    * Smart server transport test failures on windows fixed. (Lukáš Lalinský).
138
 
 
139
 
bzr 0.11rc2  2006-09-27
140
 
 
141
 
  BUG FIXES:
142
 
 
143
 
    * Test suite hangs on windows fixed. (Andrew Bennets, Alexander Belchenko).
144
 
    
145
 
    * Commit performance regression fixed. (Aaron Bentley, Robert Collins, John
146
 
      Arbash Meinel).
147
 
 
148
 
bzr 0.11rc1  2006-09-25
149
 
 
150
 
  IMPROVEMENTS:
151
 
 
152
 
    * Knit files now wait to create their contents until the first data is
153
 
      added. The old code used to create an empty .knit and a .kndx with just
154
 
      the header. However, this caused a lot of extra round trips over sftp.
155
 
      This can change the time for ``bzr push`` to create a new remote branch
156
 
      from 160s down to 100s. This also affects ``bzr commit`` performance when
157
 
      adding new files, ``bzr commit`` on a new kernel-like tree drops from 50s
158
 
      down to 40s (John Arbash Meinel, #44692)
159
 
 
160
 
    * When an entire subtree has been deleted, commit will now report that
161
 
      just the top of the subtree has been deleted, rather than reporting
162
 
      all the individual items. (Robert Collins)
163
 
 
164
 
    * Commit performs one less XML parse. (Robert Collins)
165
 
 
166
 
    * ``bzr checkout`` now operates on readonly branches as well
167
 
      as readwrite branches. This fixes bug #39542. (Robert Collins)
168
 
 
169
 
    * ``bzr bind`` no longer synchronises history with the master branch.
170
 
      Binding should be followed by an update or push to synchronise the 
171
 
      two branches. This is closely related to the fix for bug #39542.
172
 
      (Robert Collins)
173
 
 
174
 
    * ``bzrlib.lazy_import.lazy_import`` function to create on-demand 
175
 
      objects.  This allows all imports to stay at the global scope, but
176
 
      modules will not actually be imported if they are not used.
177
 
      (John Arbash Meinel)
178
 
 
179
 
    * Support bzr:// and bzr+ssh:// urls to work with the new RPC-based
180
 
      transport which will be used with the upcoming high-performance smart
181
 
      server. The new command ``bzr serve`` will invoke bzr in server mode,
182
 
      which processes these requests. (Andrew Bennetts, Robert Collins, Martin
183
 
      Pool)
184
 
 
185
 
    * New command ``bzr version-info`` which can be used to get a summary
186
 
      of the current state of the tree. This is especially useful as part
187
 
      of a build commands. See ``doc/version_info.txt`` for more information 
188
 
      (John Arbash Meinel)
189
 
 
190
 
  BUG FIXES:
191
 
 
192
 
    * 'bzr inventory [FILE...]' allows restricting the file list to a
193
 
      specific set of files. (John Arbash Meinel, #3631)
194
 
 
195
 
    * Don't abort when annotating empty files (John Arbash Meinel, #56814)
196
 
 
197
 
    * Add ``Stanza.to_unicode()`` which can be passed to another Stanza
198
 
      when nesting stanzas. Also, add ``read_stanza_unicode`` to handle when
199
 
      reading a nested Stanza. (John Arbash Meinel)
200
 
 
201
 
    * Transform._set_mode() needs to stat the right file. 
202
 
      (John Arbash Meinel, #56549)
203
 
 
204
 
    * Raise WeaveFormatError rather than StopIteration when trying to read
205
 
      an empty Weave file. (John Arbash Meinel, #46871)
206
 
 
207
 
    * Don't access e.code for generic URLErrors, only HTTPErrors have .code.
208
 
      (Vincent Ladeuil, #59835)
209
 
 
210
 
    * Handle boundary="" lines properly to allow access through a Squid proxy.
211
 
      (John Arbash Meinel, #57723)
212
 
 
213
 
    * revert now removes newly-added directories (Aaron Bentley, #54172)
214
 
 
215
 
    * ``bzr upgrade sftp://`` shouldn't fail to upgrade v6 branches if there 
216
 
      isn't a working tree. (David Allouche, #40679)
217
 
 
218
 
    * Give nicer error messages when a user supplies an invalid --revision
219
 
      parameter. (John Arbash Meinel, #55420)
220
 
 
221
 
    * Handle when LANG is not recognized by python. Emit a warning, but
222
 
      just revert to using 'ascii'. (John Arbash Meinel, #35392)
223
 
 
224
 
    * Don't use preexec_fn on win32, as it is not supported by subprocess.
225
 
      (John Arbash Meinel)
226
 
 
227
 
    * Skip specific tests when the dependencies aren't met. This includes
228
 
      some ``setup.py`` tests when ``python-dev`` is not available, and
229
 
      some tests that depend on paramiko. (John Arbash Meinel, Mattheiu Moy)
230
 
 
231
 
    * Fallback to Paramiko properly, if no ``ssh`` executable exists on
232
 
      the system. (Andrew Bennetts, John Arbash Meinel)
233
 
 
234
 
    * ``Branch.bind(other_branch)`` no longer takes a write lock on the
235
 
      other branch, and will not push or pull between the two branches.
236
 
      API users will need to perform a push or pull or update operation if they
237
 
      require branch synchronisation to take place. (Robert Collins, #47344)
238
 
 
239
 
    * When creating a tarball or zipfile export, export unicode names as utf-8
240
 
      paths. This may not work perfectly on all platforms, but has the best
241
 
      chance of working in the common case. (John Arbash Meinel, #56816)
242
 
 
243
 
    * When committing, only files that exist in working tree or basis tree
244
 
      may be specified (Aaron Bentley, #50793)
245
 
 
246
 
  PORTABILITY:
247
 
 
248
 
    * Fixes to run on Python 2.5 (Brian M. Carlson, Martin Pool, Marien Zwart)
249
 
 
250
 
  INTERNALS:
251
 
 
252
 
    * TestCaseInTempDir now creates a separate directory for HOME, rather
253
 
      than having HOME set to the same location as the working directory.
254
 
      (John Arbash Meinel)
255
 
 
256
 
    * run_bzr_subprocess() can take an optional 'env_changes={}' parameter,
257
 
      which will update os.environ inside the spawned child. It also can
258
 
      take a 'universal_newlines=True', which helps when checking the output
259
 
      of the command. (John Arbash Meinel)
260
 
 
261
 
    * Refactor SFTP vendors to allow easier re-use when ssh is used. 
262
 
      (Andrew Bennetts)
263
 
 
264
 
    * Transport.list_dir() and Transport.iter_files_recursive() should always
265
 
      return urlescaped paths. This is now tested (there were bugs in a few
266
 
      of the transports) (Andrew Bennetts, David Allouche, John Arbash Meinel)
267
 
 
268
 
    * New utility function symbol_versioning.deprecation_string. Returns the
269
 
      formatted string for a callable, deprecation format pair. (Robert Collins)
270
 
 
271
 
    * New TestCase helper applyDeprecated. This allows you to call a callable
272
 
      which is deprecated without it spewing to the screen, just by supplying
273
 
      the deprecation format string issued for it. (Robert Collins)
274
 
 
275
 
    * Transport.append and Transport.put have been deprecated in favor of
276
 
      .append_bytes, .append_file, .put_bytes, and .put_file. This removes the
277
 
      ambiguity in what type of object the functions take.
278
 
      Transport.non_atomic_put_{bytes,file} has also been added. Which works
279
 
      similarly to Transport.append() except for SFTP, it doesn't have a round
280
 
      trip when opening the file. Also, it provides functionality for creating
281
 
      a parent directory when trying to create a file, rather than raise
282
 
      NoSuchFile and forcing the caller to repeat their request.
283
 
      (John Arbash Meinel)
284
 
 
285
 
    * WorkingTree has a new api ``unversion`` which allow the unversioning of
286
 
      entries by their file id. (Robert Collins)
287
 
 
288
 
    * WorkingTree.pending_merges is deprecated.  Please use the get_parent_ids
289
 
      (introduced in 0.10) method instead. (Robert Collins)
290
 
 
291
 
    * WorkingTree has a new lock_tree_write method which locks the branch for
292
 
      read rather than write. This is appropriate for actions which only need
293
 
      the branch data for reference rather than mutation. A new decorator
294
 
      needs_tree_write_lock is provided in the workingtree module. Like the
295
 
      needs_read_lock and needs_write_lock decorators this allows static 
296
 
      declaration of the locking requirements of a function to ensure that
297
 
      a lock is taken out for casual scripts. (Robert Collins, #54107)
298
 
 
299
 
    * All WorkingTree methods which write to the tree, but not to the branch
300
 
      have been converted to use ``needs_tree_write_lock`` rather than 
301
 
      ``needs_write_lock``. Also converted is the revert, conflicts and tree
302
 
      transform modules. This provides a modest performance improvement on 
303
 
      metadir style trees, due to the reduce lock-acquisition, and a more
304
 
      significant performance improvement on lightweight checkouts from 
305
 
      remote branches, where trivial operations used to pay a significant 
306
 
      penalty. It also provides the basis for allowing readonly checkouts.
307
 
      (Robert Collins)
308
 
 
309
 
    * Special case importing the standard library 'copy' module. This shaves
310
 
      off 40ms of startup time, while retaining compatibility. See:
311
 
      ``bzrlib/inspect_for_copy.py`` for more details. (John Arbash Meinel)
312
 
 
313
 
    * WorkingTree has a new parent class MutableTree which represents the 
314
 
      specialisations of Tree which are able to be altered. (Robert Collins)
315
 
 
316
 
    * New methods mkdir and put_file_bytes_non_atomic on MutableTree that
317
 
      mutate the tree and its contents. (Robert Collins)
318
 
 
319
 
    * Transport behaviour at the root of the URL is now defined and tested.
320
 
      (Andrew Bennetts, Robert Collins)
321
 
 
322
 
  TESTING:
323
 
 
324
 
    * New test helper classs MemoryTree. This is typically accessed via
325
 
      ``self.make_branch_and_memory_tree()`` in test cases. (Robert Collins)
326
 
      
327
 
    * Add start_bzr_subprocess and stop_bzr_subprocess to allow test code to
328
 
      continue running concurrently with a subprocess of bzr. (Andrew Bennetts,
329
 
      Robert Collins)
330
 
 
331
 
    * Add a new method ``Transport.get_smart_client()``. This is provided to
332
 
      allow upgrades to a richer interface than the VFS one provided by
333
 
      Transport. (Andrew Bennetts, Martin Pool)
334
 
 
335
 
bzr 0.10  2006-08-29
336
 
  
337
 
  IMPROVEMENTS:
338
 
    * 'merge' now takes --uncommitted, to apply uncommitted changes from a
339
 
      tree.  (Aaron Bentley)
340
 
  
341
 
    * 'bzr add --file-ids-from' can be used to specify another path to use
342
 
      for creating file ids, rather than generating all new ones. Internally,
343
 
      the 'action' passed to smart_add_tree() can return file_ids that
344
 
      will be used, rather than having bzrlib generate new ones.
345
 
      (John Arbash Meinel, #55781)
346
 
 
347
 
    * ``bzr selftest --benchmark`` now allows a ``--cache-dir`` parameter.
348
 
      This will cache some of the intermediate trees, and decrease the
349
 
      setup time for benchmark tests. (John Arbash Meinel)
350
 
 
351
 
    * Inverse forms are provided for all boolean options.  For example,
352
 
      --strict has --no-strict, --no-recurse has --recurse (Aaron Bentley)
353
 
 
354
 
    * Serialize out Inventories directly, rather than using ElementTree.
355
 
      Writing out a kernel sized inventory drops from 2s down to ~350ms.
356
 
      (Robert Collins, John Arbash Meinel)
357
 
 
358
 
  BUG FIXES:
359
 
 
360
 
    * Help diffutils 2.8.4 get along with binary tests (Marien Zwart: #57614)
361
 
 
362
 
    * Change LockDir so that if the lock directory doesn't exist when
363
 
      lock_write() is called, an attempt will be made to create it.
364
 
      (John Arbash Meinel, #56974)
365
 
 
366
 
    * ``bzr uncommit`` preserves pending merges. (John Arbash Meinel, #57660)
367
 
 
368
 
    * Active FTP transport now works as intended. (ghozzy, #56472)
369
 
 
370
 
    * Really fix mutter() so that it won't ever raise a UnicodeError.
371
 
      It means it is possible for ~/.bzr.log to contain non UTF-8 characters.
372
 
      But it is a debugging log, not a real user file.
373
 
      (John Arbash Meinel, #56947, #53880)
374
 
 
375
 
    * Change Command handle to allow Unicode command and options.
376
 
      At present we cannot register Unicode command names, so we will get
377
 
      BzrCommandError('unknown command'), or BzrCommandError('unknown option')
378
 
      But that is better than a UnicodeError + a traceback.
379
 
      (John Arbash Meinel, #57123)
380
 
 
381
 
    * Handle TZ=UTC properly when reading/writing revisions.
382
 
      (John Arbash Meinel, #55783, #56290)
383
 
 
384
 
    * Use GPG_TTY to allow gpg --cl to work with gpg-agent in a pipeline,
385
 
      (passing text to sign in on stdin). (John Arbash Meinel, #54468)
386
 
 
387
 
    * External diff does the right thing for binaries even in foreign 
388
 
      languages. (John Arbash Meinel, #56307)
389
 
 
390
 
    * Testament handles more cases when content is unicode. Specific bug was
391
 
      in handling of revision properties. (John Arbash Meinel, Holger Krekel,
392
 
      #54723)
393
 
 
394
 
    * The bzr selftest was failing on installed versions due to a bug in a new
395
 
      test helper. (John Arbash Meinel, Robert Collins, #58057)
396
 
 
397
 
  INTERNALS:
398
 
 
399
 
    * ``bzrlib.cache_utf8`` contains ``encode()`` and ``decode()`` functions
400
 
      which can be used to cache the conversion between utf8 and Unicode.
401
 
      Especially helpful for some of the knit annotation code, which has to
402
 
      convert revision ids to utf8 to annotate lines in storage.
403
 
      (John Arbash Meinel)
404
 
 
405
 
    * ``setup.py`` now searches the filesystem to find all packages which
406
 
      need to be installed. This should help make the life of packagers
407
 
      easier. (John Arbash Meinel)
 
2
  
 
3
  IMPROVEMENTS:
 
4
 
 
5
  BUG FIXES:
 
6
 
 
7
  INTERNALS:
408
8
 
409
9
bzr 0.9.0  2006-08-11
410
10
 
1380
980
    * Config options have moved from bzrlib.osutils to bzrlib.config.
1381
981
      Configuration is now done via the config.Config interface:
1382
982
      Depending on whether you have a Branch, a Location or no information
1383
 
      available, construct a ``*Config``, and use its ``signature_checking``,
1384
 
      ``username`` and ``user_email`` methods. (Robert Collins)
 
983
      available, construct a *Config, and use its signature_checking,
 
984
      username and user_email methods. (Robert Collins)
1385
985
 
1386
986
    * Plugins are now loaded under bzrlib.plugins, not bzrlib.plugin, and
1387
987
      they are made available for other plugins to use. You should not