~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to NEWS

  • Committer: Aaron Bentley
  • Date: 2006-10-12 03:19:14 UTC
  • mto: This revision was merged to the branch mainline in revision 2078.
  • Revision ID: aaron.bentley@utoronto.ca-20061012031914-036d95e1296a45c4
Changes from review comments

Show diffs side-by-side

added added

removed removed

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