~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to NEWS

  • Committer: John Arbash Meinel
  • Date: 2006-10-10 06:26:39 UTC
  • mto: This revision was merged to the branch mainline in revision 2070.
  • Revision ID: john@arbash-meinel.com-20061010062639-6d527d0f9a3401d8
Catch an exception while opening /dev/urandom rather than using os.path.exists()

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
bzr development version
 
1
IN DEVELOPMENT
 
2
 
 
3
  IMPROVEMENTS:
 
4
    * ``bzr help commands`` output is now shorter (Aaron Bentley)
 
5
 
 
6
  INTERNALS:
 
7
 
 
8
    * ``TestCase.run_bzr``, ``run_bzr_captured``, and ``run_bzr_subprocess``
 
9
      can take a ``working_dir='foo'`` parameter, which will change directory 
 
10
      for the command. (John Arbash Meinel)
 
11
 
 
12
  BUG FIXES:
 
13
 
 
14
    * bzr branch/pull no longer complain about progress bar cleanup when
 
15
      interrupted during fetch.  (Aaron Bentley, #54000)
 
16
 
 
17
    * ``WorkingTree.set_parent_trees()`` uses the trees to directly write
 
18
      the basis inventory, rather than going through the repository. This
 
19
      allows us to have 1 inventory read, and 2 inventory writes when
 
20
      committing a new tree. (John Arbash Meinel)
 
21
 
 
22
    * When reverting, files that are not locally modified that do not exist
 
23
      in the target are deleted, not just unversioned (Aaron Bentley)
 
24
 
 
25
    * When trying to acquire a lock, don't fail immediately. Instead, try
 
26
      a few times (up to 1 hour) before timing out. Also, report why the
 
27
      lock is unavailable (John Arbash Meinel, #43521, #49556)
 
28
 
 
29
    * Leave HttpTransportBase daughter classes decides how they
 
30
      implement cloning. (Vincent Ladeuil, #61606)
 
31
 
 
32
   * diff3 does not indicate conflicts on clean merge. (Aaron Bentley)
 
33
 
 
34
  TESTING:
 
35
 
 
36
    * New test base class TestCaseWithMemoryTransport offers memory-only
 
37
      testing facilities: its not suitable for tests that need to mutate disk
 
38
      state, but most tests should not need that and should be converted to
 
39
      TestCaseWithMemoryTransport. (Robert Collins)
 
40
 
 
41
bzr 0.11  2006-10-02
 
42
 
 
43
    * Smart server transport test failures on windows fixed. (Lukáš Lalinský).
 
44
 
 
45
bzr 0.11rc2  2006-09-27
 
46
 
 
47
  BUG FIXES:
 
48
 
 
49
    * Test suite hangs on windows fixed. (Andrew Bennets, Alexander Belchenko).
 
50
    
 
51
    * Commit performance regression fixed. (Aaron Bentley, Robert Collins, John
 
52
      Arbash Meinel).
 
53
 
 
54
bzr 0.11rc1  2006-09-25
 
55
 
 
56
  IMPROVEMENTS:
 
57
 
 
58
    * Knit files now wait to create their contents until the first data is
 
59
      added. The old code used to create an empty .knit and a .kndx with just
 
60
      the header. However, this caused a lot of extra round trips over sftp.
 
61
      This can change the time for ``bzr push`` to create a new remote branch
 
62
      from 160s down to 100s. This also affects ``bzr commit`` performance when
 
63
      adding new files, ``bzr commit`` on a new kernel-like tree drops from 50s
 
64
      down to 40s (John Arbash Meinel, #44692)
 
65
 
 
66
    * When an entire subtree has been deleted, commit will now report that
 
67
      just the top of the subtree has been deleted, rather than reporting
 
68
      all the individual items. (Robert Collins)
 
69
 
 
70
    * Commit performs one less XML parse. (Robert Collins)
 
71
 
 
72
    * ``bzr checkout`` now operates on readonly branches as well
 
73
      as readwrite branches. This fixes bug #39542. (Robert Collins)
 
74
 
 
75
    * ``bzr bind`` no longer synchronises history with the master branch.
 
76
      Binding should be followed by an update or push to synchronise the 
 
77
      two branches. This is closely related to the fix for bug #39542.
 
78
      (Robert Collins)
 
79
 
 
80
    * ``bzrlib.lazy_import.lazy_import`` function to create on-demand 
 
81
      objects.  This allows all imports to stay at the global scope, but
 
82
      modules will not actually be imported if they are not used.
 
83
      (John Arbash Meinel)
 
84
 
 
85
    * Support bzr:// and bzr+ssh:// urls to work with the new RPC-based
 
86
      transport which will be used with the upcoming high-performance smart
 
87
      server. The new command ``bzr serve`` will invoke bzr in server mode,
 
88
      which processes these requests. (Andrew Bennetts, Robert Collins, Martin
 
89
      Pool)
 
90
 
 
91
    * New command ``bzr version-info`` which can be used to get a summary
 
92
      of the current state of the tree. This is especially useful as part
 
93
      of a build commands. See ``doc/version_info.txt`` for more information 
 
94
      (John Arbash Meinel)
 
95
 
 
96
  BUG FIXES:
 
97
 
 
98
    * 'bzr inventory [FILE...]' allows restricting the file list to a
 
99
      specific set of files. (John Arbash Meinel, #3631)
 
100
 
 
101
    * Don't abort when annotating empty files (John Arbash Meinel, #56814)
 
102
 
 
103
    * Add ``Stanza.to_unicode()`` which can be passed to another Stanza
 
104
      when nesting stanzas. Also, add ``read_stanza_unicode`` to handle when
 
105
      reading a nested Stanza. (John Arbash Meinel)
 
106
 
 
107
    * Transform._set_mode() needs to stat the right file. 
 
108
      (John Arbash Meinel, #56549)
 
109
 
 
110
    * Raise WeaveFormatError rather than StopIteration when trying to read
 
111
      an empty Weave file. (John Arbash Meinel, #46871)
 
112
 
 
113
    * Don't access e.code for generic URLErrors, only HTTPErrors have .code.
 
114
      (Vincent Ladeuil, #59835)
 
115
 
 
116
    * Handle boundary="" lines properly to allow access through a Squid proxy.
 
117
      (John Arbash Meinel, #57723)
 
118
 
 
119
    * revert now removes newly-added directories (Aaron Bentley, #54172)
 
120
 
 
121
    * ``bzr upgrade sftp://`` shouldn't fail to upgrade v6 branches if there 
 
122
      isn't a working tree. (David Allouche, #40679)
 
123
 
 
124
    * Give nicer error messages when a user supplies an invalid --revision
 
125
      parameter. (John Arbash Meinel, #55420)
 
126
 
 
127
    * Handle when LANG is not recognized by python. Emit a warning, but
 
128
      just revert to using 'ascii'. (John Arbash Meinel, #35392)
 
129
 
 
130
    * Don't use preexec_fn on win32, as it is not supported by subprocess.
 
131
      (John Arbash Meinel)
 
132
 
 
133
    * Skip specific tests when the dependencies aren't met. This includes
 
134
      some ``setup.py`` tests when ``python-dev`` is not available, and
 
135
      some tests that depend on paramiko. (John Arbash Meinel, Mattheiu Moy)
 
136
 
 
137
    * Fallback to Paramiko properly, if no ``ssh`` executable exists on
 
138
      the system. (Andrew Bennetts, John Arbash Meinel)
 
139
 
 
140
    * ``Branch.bind(other_branch)`` no longer takes a write lock on the
 
141
      other branch, and will not push or pull between the two branches.
 
142
      API users will need to perform a push or pull or update operation if they
 
143
      require branch synchronisation to take place. (Robert Collins, #47344)
 
144
 
 
145
    * When creating a tarball or zipfile export, export unicode names as utf-8
 
146
      paths. This may not work perfectly on all platforms, but has the best
 
147
      chance of working in the common case. (John Arbash Meinel, #56816)
 
148
 
 
149
    * When committing, only files that exist in working tree or basis tree
 
150
      may be specified (Aaron Bentley, #50793)
 
151
 
 
152
  PORTABILITY:
 
153
 
 
154
    * Fixes to run on Python 2.5 (Brian M. Carlson, Martin Pool, Marien Zwart)
 
155
 
 
156
  INTERNALS:
 
157
 
 
158
    * TestCaseInTempDir now creates a separate directory for HOME, rather
 
159
      than having HOME set to the same location as the working directory.
 
160
      (John Arbash Meinel)
 
161
 
 
162
    * run_bzr_subprocess() can take an optional 'env_changes={}' parameter,
 
163
      which will update os.environ inside the spawned child. It also can
 
164
      take a 'universal_newlines=True', which helps when checking the output
 
165
      of the command. (John Arbash Meinel)
 
166
 
 
167
    * Refactor SFTP vendors to allow easier re-use when ssh is used. 
 
168
      (Andrew Bennetts)
 
169
 
 
170
    * Transport.list_dir() and Transport.iter_files_recursive() should always
 
171
      return urlescaped paths. This is now tested (there were bugs in a few
 
172
      of the transports) (Andrew Bennetts, David Allouche, John Arbash Meinel)
 
173
 
 
174
    * New utility function symbol_versioning.deprecation_string. Returns the
 
175
      formatted string for a callable, deprecation format pair. (Robert Collins)
 
176
 
 
177
    * New TestCase helper applyDeprecated. This allows you to call a callable
 
178
      which is deprecated without it spewing to the screen, just by supplying
 
179
      the deprecation format string issued for it. (Robert Collins)
 
180
 
 
181
    * Transport.append and Transport.put have been deprecated in favor of
 
182
      .append_bytes, .append_file, .put_bytes, and .put_file. This removes the
 
183
      ambiguity in what type of object the functions take.
 
184
      Transport.non_atomic_put_{bytes,file} has also been added. Which works
 
185
      similarly to Transport.append() except for SFTP, it doesn't have a round
 
186
      trip when opening the file. Also, it provides functionality for creating
 
187
      a parent directory when trying to create a file, rather than raise
 
188
      NoSuchFile and forcing the caller to repeat their request.
 
189
      (John Arbash Meinel)
 
190
 
 
191
    * WorkingTree has a new api ``unversion`` which allow the unversioning of
 
192
      entries by their file id. (Robert Collins)
 
193
 
 
194
    * WorkingTree.pending_merges is deprecated.  Please use the get_parent_ids
 
195
      (introduced in 0.10) method instead. (Robert Collins)
 
196
 
 
197
    * WorkingTree has a new lock_tree_write method which locks the branch for
 
198
      read rather than write. This is appropriate for actions which only need
 
199
      the branch data for reference rather than mutation. A new decorator
 
200
      needs_tree_write_lock is provided in the workingtree module. Like the
 
201
      needs_read_lock and needs_write_lock decorators this allows static 
 
202
      declaration of the locking requirements of a function to ensure that
 
203
      a lock is taken out for casual scripts. (Robert Collins, #54107)
 
204
 
 
205
    * All WorkingTree methods which write to the tree, but not to the branch
 
206
      have been converted to use ``needs_tree_write_lock`` rather than 
 
207
      ``needs_write_lock``. Also converted is the revert, conflicts and tree
 
208
      transform modules. This provides a modest performance improvement on 
 
209
      metadir style trees, due to the reduce lock-acquisition, and a more
 
210
      significant performance improvement on lightweight checkouts from 
 
211
      remote branches, where trivial operations used to pay a significant 
 
212
      penalty. It also provides the basis for allowing readonly checkouts.
 
213
      (Robert Collins)
 
214
 
 
215
    * Special case importing the standard library 'copy' module. This shaves
 
216
      off 40ms of startup time, while retaining compatibility. See:
 
217
      ``bzrlib/inspect_for_copy.py`` for more details. (John Arbash Meinel)
 
218
 
 
219
    * WorkingTree has a new parent class MutableTree which represents the 
 
220
      specialisations of Tree which are able to be altered. (Robert Collins)
 
221
 
 
222
    * New methods mkdir and put_file_bytes_non_atomic on MutableTree that
 
223
      mutate the tree and its contents. (Robert Collins)
 
224
 
 
225
    * Transport behaviour at the root of the URL is now defined and tested.
 
226
      (Andrew Bennetts, Robert Collins)
 
227
 
 
228
  TESTING:
 
229
 
 
230
    * New test helper classs MemoryTree. This is typically accessed via
 
231
      ``self.make_branch_and_memory_tree()`` in test cases. (Robert Collins)
 
232
      
 
233
    * Add start_bzr_subprocess and stop_bzr_subprocess to allow test code to
 
234
      continue running concurrently with a subprocess of bzr. (Andrew Bennetts,
 
235
      Robert Collins)
 
236
 
 
237
    * Add a new method ``Transport.get_smart_client()``. This is provided to
 
238
      allow upgrades to a richer interface than the VFS one provided by
 
239
      Transport. (Andrew Bennetts, Martin Pool)
 
240
 
 
241
bzr 0.10  2006-08-29
 
242
  
 
243
  IMPROVEMENTS:
 
244
    * 'merge' now takes --uncommitted, to apply uncommitted changes from a
 
245
      tree.  (Aaron Bentley)
 
246
  
 
247
    * 'bzr add --file-ids-from' can be used to specify another path to use
 
248
      for creating file ids, rather than generating all new ones. Internally,
 
249
      the 'action' passed to smart_add_tree() can return file_ids that
 
250
      will be used, rather than having bzrlib generate new ones.
 
251
      (John Arbash Meinel, #55781)
 
252
 
 
253
    * ``bzr selftest --benchmark`` now allows a ``--cache-dir`` parameter.
 
254
      This will cache some of the intermediate trees, and decrease the
 
255
      setup time for benchmark tests. (John Arbash Meinel)
 
256
 
 
257
    * Inverse forms are provided for all boolean options.  For example,
 
258
      --strict has --no-strict, --no-recurse has --recurse (Aaron Bentley)
 
259
 
 
260
    * Serialize out Inventories directly, rather than using ElementTree.
 
261
      Writing out a kernel sized inventory drops from 2s down to ~350ms.
 
262
      (Robert Collins, John Arbash Meinel)
 
263
 
 
264
  BUG FIXES:
 
265
 
 
266
    * Help diffutils 2.8.4 get along with binary tests (Marien Zwart: #57614)
 
267
 
 
268
    * Change LockDir so that if the lock directory doesn't exist when
 
269
      lock_write() is called, an attempt will be made to create it.
 
270
      (John Arbash Meinel, #56974)
 
271
 
 
272
    * ``bzr uncommit`` preserves pending merges. (John Arbash Meinel, #57660)
 
273
 
 
274
    * Active FTP transport now works as intended. (ghozzy, #56472)
 
275
 
 
276
    * Really fix mutter() so that it won't ever raise a UnicodeError.
 
277
      It means it is possible for ~/.bzr.log to contain non UTF-8 characters.
 
278
      But it is a debugging log, not a real user file.
 
279
      (John Arbash Meinel, #56947, #53880)
 
280
 
 
281
    * Change Command handle to allow Unicode command and options.
 
282
      At present we cannot register Unicode command names, so we will get
 
283
      BzrCommandError('unknown command'), or BzrCommandError('unknown option')
 
284
      But that is better than a UnicodeError + a traceback.
 
285
      (John Arbash Meinel, #57123)
 
286
 
 
287
    * Handle TZ=UTC properly when reading/writing revisions.
 
288
      (John Arbash Meinel, #55783, #56290)
 
289
 
 
290
    * Use GPG_TTY to allow gpg --cl to work with gpg-agent in a pipeline,
 
291
      (passing text to sign in on stdin). (John Arbash Meinel, #54468)
 
292
 
 
293
    * External diff does the right thing for binaries even in foreign 
 
294
      languages. (John Arbash Meinel, #56307)
 
295
 
 
296
    * Testament handles more cases when content is unicode. Specific bug was
 
297
      in handling of revision properties. (John Arbash Meinel, Holger Krekel,
 
298
      #54723)
 
299
 
 
300
    * The bzr selftest was failing on installed versions due to a bug in a new
 
301
      test helper. (John Arbash Meinel, Robert Collins, #58057)
 
302
 
 
303
  INTERNALS:
 
304
 
 
305
    * ``bzrlib.cache_utf8`` contains ``encode()`` and ``decode()`` functions
 
306
      which can be used to cache the conversion between utf8 and Unicode.
 
307
      Especially helpful for some of the knit annotation code, which has to
 
308
      convert revision ids to utf8 to annotate lines in storage.
 
309
      (John Arbash Meinel)
 
310
 
 
311
    * ``setup.py`` now searches the filesystem to find all packages which
 
312
      need to be installed. This should help make the life of packagers
 
313
      easier. (John Arbash Meinel)
 
314
 
 
315
bzr 0.9.0  2006-08-11
 
316
 
 
317
  SURPRISES:
 
318
 
 
319
   * The hard-coded built-in ignore rules have been removed. There are
 
320
     now two rulesets which are enforced. A user global one in 
 
321
     ~/.bazaar/ignore which will apply to every tree, and the tree
 
322
     specific one '.bzrignore'.
 
323
     ~/.bazaar/ignore will be created if it does not exist, but with
 
324
     a more conservative list than the old default.
 
325
     This fixes bugs with default rules being enforced no matter what. 
 
326
     The old list of ignore rules from bzr is available by
 
327
     running 'bzr ignore --old-default-rules'.
 
328
     (Robert Collins, Martin Pool, John Arbash Meinel)
 
329
 
 
330
   * 'branches.conf' has been changed to 'locations.conf', since it can apply
 
331
     to more locations than just branch locations.
 
332
     (Aaron Bentley)
 
333
   
 
334
  IMPROVEMENTS:
 
335
 
 
336
   * The revision specifier "revno:" is extended to accept the syntax
 
337
     revno:N:branch. For example,
 
338
     revno:42:http://bazaar-vcs.org/bzr/bzr.dev/ means revision 42 in
 
339
     bzr.dev.  (Matthieu Moy)
 
340
 
 
341
   * Tests updates to ensure proper URL handling, UNICODE support, and
 
342
     proper printing when the user's terminal encoding cannot display 
 
343
     the path of a file that has been versioned.
 
344
     ``bzr branch`` can take a target URL rather than only a local directory.
 
345
     Branch.get_parent()/set_parent() now save a relative path if possible,
 
346
     and normalize the parent based on root, allowing access across
 
347
     different transports. (John Arbash Meinel, Wouter van Heyst, Martin Pool)
 
348
     (Malone #48906, #42699, #40675, #5281, #3980, #36363, #43689,
 
349
      #42517, #42514)
 
350
 
 
351
   * On Unix, detect terminal width using an ioctl not just $COLUMNS.
 
352
     Use terminal width for single-line logs from ``bzr log --line`` and
 
353
     pending-merge display.  (Robert Widhopf-Fenk, Gustavo Niemeyer)
 
354
     (Malone #3507)
 
355
 
 
356
   * On Windows, detect terminal width using GetConsoleScreenBufferInfo.
 
357
     (Alexander Belchenko)
 
358
 
 
359
   * Speedup improvement for 'date:'-revision search. (Guillaume Pinot).
 
360
 
 
361
   * Show the correct number of revisions pushed when pushing a new branch.
 
362
     (Robert Collins).
 
363
 
 
364
   * 'bzr selftest' now shows a progress bar with the number of tests, and 
 
365
     progress made. 'make check' shows tests in -v mode, to be more useful
 
366
     for the PQM status window. (Robert Collins).
 
367
     When using a progress bar, failed tests are printed out, rather than
 
368
     being overwritten by the progress bar until the suite finishes.
 
369
     (John Arbash Meinel)
 
370
 
 
371
   * 'bzr selftest --benchmark' will run a new benchmarking selftest.
 
372
     'bzr selftest --benchmark --lsprof-timed' will use lsprofile to generate
 
373
     profile data for the individual profiled calls, allowing for fine
 
374
     grained analysis of performance.
 
375
     (Robert Collins, Martin Pool).
 
376
 
 
377
   * 'bzr commit' shows a progress bar. This is useful for commits over sftp
 
378
     where commit can take an appreciable time. (Robert Collins)
 
379
 
 
380
   * 'bzr add' is now less verbose in telling you what ignore globs were
 
381
     matched by files being ignored. Instead it just tells you how many 
 
382
     were ignored (because you might reasonably be expecting none to be
 
383
     ignored). 'bzr add -v' is unchanged and will report every ignored
 
384
     file. (Robert Collins).
 
385
 
 
386
   * ftp now has a test server if medusa is installed. As part of testing,
 
387
     ftp support has been improved, including support for supplying a
 
388
     non-standard port. (John Arbash Meinel).
 
389
 
 
390
   * 'bzr log --line' shows the revision number, and uses only the
 
391
     first line of the log message (#5162, Alexander Belchenko;
 
392
     Matthieu Moy)
 
393
 
 
394
   * 'bzr status' has had the --all option removed. The 'bzr ls' command
 
395
     should be used to retrieve all versioned files. (Robert Collins)
 
396
 
 
397
   * 'bzr bundle OTHER/BRANCH' will create a bundle which can be sent
 
398
     over email, and applied on the other end, while maintaining ancestry.
 
399
     This bundle can be applied with either 'bzr merge' or 'bzr pull',
 
400
     the same way you would apply another branch.
 
401
     (John Arbash Meinel, Aaron Bentley)
 
402
  
 
403
   * 'bzr whoami' can now be used to set your identity from the command line,
 
404
     for a branch or globally.  (Robey Pointer)
 
405
 
 
406
   * 'bzr checkout' now aliased to 'bzr co', and 'bzr annotate' to 'bzr ann'.
 
407
     (Michael Ellerman)
 
408
 
 
409
   * 'bzr revert DIRECTORY' now reverts the contents of the directory as well.
 
410
     (Aaron Bentley)
 
411
 
 
412
   * 'bzr get sftp://foo' gives a better error when paramiko is not present.
 
413
     Also updates things like 'http+pycurl://' if pycurl is not present.
 
414
     (John Arbash Meinel) (Malone #47821, #52204)
 
415
 
 
416
   * New env variable BZR_PROGRESS_BAR, sets the default progress bar type.
 
417
     Can be set to 'none' or 'dummy' to disable the progress bar, 'dots' or 
 
418
     'tty' to create the respective type. (John Arbash Meinel, #42197, #51107)
 
419
 
 
420
   * Improve the help text for 'bzr diff' to explain what various options do.
 
421
     (John Arbash Meinel, #6391)
 
422
 
 
423
   * 'bzr uncommit -r 10' now uncommits revisions 11.. rather than uncommitting
 
424
     revision 10. This makes -r10 more in line with what other commands do.
 
425
     'bzr uncommit' also now saves the pending merges of the revisions that
 
426
     were removed. So it is safe to uncommit after a merge, fix something,
 
427
     and commit again. (John Arbash Meinel, #32526, #31426)
 
428
 
 
429
   * 'bzr init' now also works on remote locations.
 
430
     (Wouter van Heyst, #48904)
 
431
 
 
432
   * HTTP support has been updated. When using pycurl we now support 
 
433
     connection keep-alive, which reduces dns requests and round trips.
 
434
     And for both urllib and pycurl we support multi-range requests, 
 
435
     which decreases the number of round-trips. Performance results for
 
436
     ``bzr branch http://bazaar-vcs.org/bzr/bzr.dev/`` indicate
 
437
     http branching is now 2-3x faster, and ``bzr pull`` in an existing 
 
438
     branch is as much as 4x faster.
 
439
     (Michael Ellerman, Johan Rydberg, John Arbash Meinel, #46768)
 
440
 
 
441
   * Performance improvements for sftp. Branching and pulling are now up to
 
442
     2x faster. Utilize paramiko.readv() support for async requests if it
 
443
     is available (paramiko > 1.6) (John Arbash Meinel)
 
444
 
 
445
  BUG FIXES:
 
446
 
 
447
    * Fix shadowed definition of TestLocationConfig that caused some 
 
448
      tests not to run.  (#32587, Erik Bågfors, Michael Ellerman, 
 
449
      Martin Pool)
 
450
 
 
451
    * Fix unnecessary requirement of sign-my-commits that it be run from
 
452
      a working directory.  (Martin Pool, Robert Collins)
 
453
 
 
454
    * 'bzr push location' will only remember the push location if it succeeds
 
455
      in connecting to the remote location. (#49742, John Arbash Meinel)
 
456
 
 
457
    * 'bzr revert' no longer toggles the executable bit on win32
 
458
      (#45010, John Arbash Meinel)
 
459
 
 
460
    * Handle broken pipe under win32 correctly. (John Arbash Meinel)
 
461
    
 
462
    * sftp tests now work correctly on win32 if you have a newer paramiko
 
463
      (John Arbash Meinel)
 
464
 
 
465
    * Cleanup win32 test suite, and general cleanup of places where
 
466
      file handles were being held open. (John Arbash Meinel)
 
467
 
 
468
    * When specifying filenames for 'diff -r x..y', the name of the file in the
 
469
      working directory can be used, even if its name is different in both x
 
470
      and y.
 
471
 
 
472
    * File-ids containing single- or double-quotes are handled correctly by
 
473
      push.  (#52227, Aaron Bentley)
 
474
 
 
475
    * Normalize unicode filenames to ensure cross-platform consistency.
 
476
      (John Arbash Meinel, #43689)
 
477
 
 
478
    * The argument parser can now handle '-' as an argument. Currently
 
479
      no code interprets it specially (it is mostly handled as a file named 
 
480
      '-'). But plugins, and future operations can use it.
 
481
      (John Arbash meinel, #50984)
 
482
 
 
483
    * Bundles can properly read binary files with a plain '\r' in them.
 
484
      (John Arbash Meinel, #51927)
 
485
 
 
486
    * Tuning iter_entries() to be more efficient (John Arbash Meinel, #5444)
 
487
 
 
488
    * Lots of win32 fixes (the test suite passes again).
 
489
      (John Arbash Meinel, #50155)
 
490
 
 
491
    * Handle openbsd returning None for sys.getfilesystemencoding() (#41183) 
 
492
 
 
493
    * Support ftp APPE (append) to allow Knits to be used over ftp (#42592)
 
494
 
 
495
    * Removals are only committed if they match the filespec (or if there is
 
496
      no filespec).  (#46635, Aaron Bentley)
 
497
 
 
498
    * smart-add recurses through all supplied directories 
 
499
      (John Arbash Meinel, #52578)
 
500
 
 
501
    * Make the bundle reader extra lines before and after the bundle text.
 
502
      This allows you to parse an email with the bundle inline.
 
503
      (John Arbash Meinel, #49182)
 
504
 
 
505
    * Change the file id generator to squash a little bit more. Helps when
 
506
      working with long filenames on windows. (Also helps for unicode filenames
 
507
      not generating hidden files). (John Arbash Meinel, #43801)
 
508
 
 
509
    * Restore terminal mode on C-c while reading sftp password.  (#48923, 
 
510
      Nicholas Allen, Martin Pool)
 
511
 
 
512
    * Timestamps are rounded to 1ms, and revision entries can be recreated
 
513
      exactly. (John Arbash Meinel, Jamie Wilkinson, #40693)
 
514
 
 
515
    * Branch.base has changed to a URL, but ~/.bazaar/locations.conf should
 
516
      use local paths, since it is user visible (John Arbash Meinel, #53653)
 
517
 
 
518
    * ``bzr status foo`` when foo was unversioned used to cause a full delta
 
519
      to be generated (John Arbash Meinel, #53638)
 
520
 
 
521
    * When reading revision properties, an empty value should be considered
 
522
      the empty string, not None (John Arbash Meinel, #47782)
 
523
 
 
524
    * ``bzr diff --diff-options`` can now handle binary files being changed.
 
525
      Also, the output is consistent when --diff-options is not supplied.
 
526
      (John Arbash Meinel, #54651, #52930)
 
527
 
 
528
    * Use the right suffixes for loading plugins (John Arbash Meinel, #51810)
 
529
 
 
530
    * Fix Branch.get_parent() to handle the case when the parent is not 
 
531
      accessible (John Arbash Meinel, #52976)
 
532
 
 
533
  INTERNALS:
 
534
 
 
535
    * Combine the ignore rules into a single regex rather than looping over
 
536
      them to reduce the threshold where  N^2 behaviour occurs in operations
 
537
      like status. (Jan Hudec, Robert Collins).
 
538
 
 
539
    * Appending to bzrlib.DEFAULT_IGNORE is now deprecated. Instead, use
 
540
      one of the add functions in bzrlib.ignores. (John Arbash Meinel)
 
541
 
 
542
    * 'bzr push' should only push the ancestry of the current revision, not
 
543
      all of the history in the repository. This is especially important for
 
544
      shared repositories. (John Arbash Meinel)
 
545
 
 
546
    * bzrlib.delta.compare_trees now iterates in alphabetically sorted order,
 
547
      rather than randomly walking the inventories. (John Arbash Meinel)
 
548
 
 
549
    * Doctests are now run in temporary directories which are cleaned up when
 
550
      they finish, rather than using special ScratchDir/ScratchBranch objects.
 
551
      (Martin Pool)
 
552
 
 
553
    * Split ``check`` into separate methods on the branch and on the repository,
 
554
      so that it can be specialized in ways that are useful or efficient for
 
555
      different formats.  (Martin Pool, Robert Collins)
 
556
 
 
557
    * Deprecate Repository.all_revision_ids; most methods don't really need
 
558
      the global revision graph but only that part leading up to a particular
 
559
      revision.  (Martin Pool, Robert Collins)
 
560
 
 
561
    * Add a BzrDirFormat control_formats list which allows for control formats
 
562
      that do not use '.bzr' to store their data - i.e. '.svn', '.hg' etc.
 
563
      (Robert Collins, Jelmer Vernooij).
 
564
 
 
565
    * bzrlib.diff.external_diff can be redirected to any file-like object.
 
566
      Uses subprocess instead of spawnvp.
 
567
      (#4047, #48914, James Henstridge, John Arbash Meinel)
 
568
 
 
569
    * New command line option '--profile-imports', which will install a custom
 
570
      importer to log time to import modules and regex compilation time to 
 
571
      sys.stderr (John Arbash Meinel)
 
572
 
 
573
    * 'EmptyTree' is now deprecated, please use repository.revision_tree(None)
 
574
      instead. (Robert Collins)
 
575
 
 
576
    * "RevisionTree" is now in bzrlib/revisiontree.py. (Robert Collins)
 
577
 
 
578
bzr 0.8.2  2006-05-17
 
579
  
 
580
  BUG FIXES:
 
581
   
 
582
    * setup.py failed to install launchpad plugin.  (Martin Pool)
 
583
 
 
584
bzr 0.8.1  2006-05-16
 
585
 
 
586
  BUG FIXES:
 
587
 
 
588
    * Fix failure to commit a merge in a checkout.  (Martin Pool, 
 
589
      Robert Collins, Erik Bågfors, #43959)
 
590
 
 
591
    * Nicer messages from 'commit' in the case of renames, and correct
 
592
      messages when a merge has occured. (Robert Collins, Martin Pool)
 
593
 
 
594
    * Separate functionality from assert statements as they are skipped in
 
595
      optimized mode of python. Add the same check to pending merges.
 
596
      (#44443, Olaf Conradi)
 
597
 
 
598
  CHANGES:
 
599
 
 
600
    * Do not show the None revision in output of bzr ancestry. (Olaf Conradi)
 
601
 
 
602
    * Add info on standalone branches without a working tree.
 
603
      (#44155, Olaf Conradi)
 
604
 
 
605
    * Fix bug in knits when raising InvalidRevisionId. (#44284, Olaf Conradi)
 
606
 
 
607
  CHANGES:
 
608
 
 
609
    * Make editor invocation comply with Debian Policy. First check
 
610
      environment variables VISUAL and EDITOR, then try editor from
 
611
      alternatives system. If that all fails, fall back to the pre-defined
 
612
      list of editors. (#42904, Olaf Conradi)
 
613
 
 
614
  NEW FEATURES:
 
615
 
 
616
    * New 'register-branch' command registers a public branch into 
 
617
      Launchpad.net, where it can be associated with bugs, etc.
 
618
      (Martin Pool, Bjorn Tillenius, Robert Collins)
 
619
 
 
620
  INTERNALS:
 
621
 
 
622
    * New public api in InventoryEntry - 'describe_change(old, new)' which
 
623
      provides a human description of the changes between two old and
 
624
      new. (Robert Collins, Martin Pool)
 
625
 
 
626
  TESTING:
 
627
 
 
628
    * Fix test case for bzr info in upgrading a standalone branch to metadir,
 
629
      uses bzrlib api now. (Olaf Conradi)
 
630
 
 
631
bzr 0.8  2006-05-08
 
632
 
 
633
  NOTES WHEN UPGRADING:
 
634
 
 
635
    Release 0.8 of bzr introduces a new format for history storage, called
 
636
    'knit', as an evolution of to the 'weave' format used in 0.7.  Local 
 
637
    and remote operations are faster using knits than weaves.  Several
 
638
    operations including 'init', 'init-repo', and 'upgrade' take a 
 
639
    --format option that controls this.  Branching from an existing branch
 
640
    will keep the same format.
 
641
 
 
642
    It is possible to merge, pull and push between branches of different
 
643
    formats but this is slower than moving data between homogenous
 
644
    branches.  It is therefore recommended (but not required) that you
 
645
    upgrade all branches for a project at the same time.  Information on
 
646
    formats is shown by 'bzr info'.
 
647
 
 
648
    bzr 0.8 now allows creation of 'repositories', which hold the history 
 
649
    of files and revisions for several branches.  Previously bzr kept all
 
650
    the history for a branch within the .bzr directory at the root of the
 
651
    branch, and this is still the default.  To create a repository, use
 
652
    the new 'bzr init-repo' command.  Branches exist as directories under
 
653
    the repository and contain just a small amount of information
 
654
    indicating the current revision of the branch.
 
655
 
 
656
    bzr 0.8 also supports 'checkouts', which are similar to in cvs and
 
657
    subversion.  Checkouts are associated with a branch (optionally in a
 
658
    repository), which contains all the historical information.  The
 
659
    result is that a checkout can be deleted without losing any
 
660
    already-committed revisions.  A new 'update' command is also available. 
 
661
 
 
662
    Repositories and checkouts are not supported with the 0.7 storage
 
663
    format.  To use them you must upgrad to either knits, or to the
 
664
    'metaweave' format, which uses weaves but changes the .bzr directory
 
665
    arrangement.
 
666
    
 
667
 
 
668
  IMPROVEMENTS:
 
669
 
 
670
    * Sftp paths can now be relative, or local, according to the lftp
 
671
      convention. Paths now take the form:
 
672
      sftp://user:pass@host:port/~/relative/path
 
673
      or
 
674
      sftp://user:pass@host:port/absolute/path
 
675
 
 
676
    * The FTP transport now tries to reconnect after a temporary
 
677
      failure. ftp put is made atomic. (Matthieu Moy)
 
678
 
 
679
    * The FTP transport now maintains a pool of connections, and
 
680
      reuses them to avoid multiple connections to the same host (like
 
681
      sftp did). (Daniel Silverstone)
 
682
 
 
683
    * The bzr_man.py file has been removed. To create the man page now,
 
684
      use ./generate_docs.py man. The new program can also create other files.
 
685
      Run "python generate_docs.py --help" for usage information. (Hans
 
686
      Ulrich Niedermann & James Blackwell).
 
687
 
 
688
    * Man Page now gives full help (James Blackwell). Help also updated to 
 
689
      reflect user config now being stored in .bazaar (Hans Ulrich
 
690
      Niedermann)
 
691
 
 
692
    * It's now possible to set aliases in bazaar.conf (Erik Bågfors)
 
693
 
 
694
    * Pull now accepts a --revision argument (Erik Bågfors)
 
695
 
 
696
    * 'bzr re-sign' now allows multiple revisions to be supplied on the command
 
697
      line. You can now use the following command to sign all of your old commits.
 
698
        find .bzr/revision-store// -name my@email-* \
 
699
          | sed 's/.*\/\/..\///' \
 
700
          | xargs bzr re-sign
 
701
 
 
702
    * Upgrade can now upgrade over the network. (Robert Collins)
 
703
 
 
704
    * Two new commands 'bzr checkout' and 'bzr update' allow for CVS/SVN-alike
 
705
      behaviour.  By default they will cache history in the checkout, but
 
706
      with --lightweight almost all data is kept in the master branch.
 
707
      (Robert Collins)
 
708
 
 
709
    * 'revert' unversions newly-versioned files, instead of deleting them.
 
710
 
 
711
    * 'merge' is more robust.  Conflict messages have changed.
 
712
 
 
713
    * 'merge' and 'revert' no longer clobber existing files that end in '~' or
 
714
      '.moved'.
 
715
 
 
716
    * Default log format can be set in configuration and plugins can register
 
717
      their own formatters. (Erik Bågfors)
 
718
 
 
719
    * New 'reconcile' command will check branch consistency and repair indexes
 
720
      that can become out of sync in pre 0.8 formats. (Robert Collins,
 
721
      Daniel Silverstone)
 
722
 
 
723
    * New 'bzr init --format' and 'bzr upgrade --format' option to control 
 
724
      what storage format is created or produced.  (Robert Collins, 
 
725
      Martin Pool)
 
726
 
 
727
    * Add parent location to 'bzr info', if there is one.  (Olaf Conradi)
 
728
 
 
729
    * New developer commands 'weave-list' and 'weave-join'.  (Martin Pool)
 
730
 
 
731
    * New 'init-repository' command, plus support for repositories in 'init'
 
732
      and 'branch' (Aaron Bentley, Erik Bågfors, Robert Collins)
 
733
 
 
734
    * Improve output of 'info' command. Show all relevant locations related to
 
735
      working tree, branch and repository. Use kibibytes for binary quantities.
 
736
      Fix off-by-one error in missing revisions of working tree.  Make 'info'
 
737
      work on branches, repositories and remote locations.  Show locations
 
738
      relative to the shared repository, if applicable.  Show locking status
 
739
      of locations.  (Olaf Conradi)
 
740
 
 
741
    * Diff and merge now safely handle binary files. (Aaron Bentley)
 
742
 
 
743
    * 'pull' and 'push' now normalise the revision history, so that any two
 
744
      branches with the same tip revision will have the same output from 'log'.
 
745
      (Robert Collins)
 
746
 
 
747
    * 'merge' accepts --remember option to store parent location, like 'push'
 
748
      and 'pull'. (Olaf Conradi)
 
749
 
 
750
    * bzr status and diff when files given as arguments do not exist
 
751
      in the relevant trees.  (Martin Pool, #3619)
 
752
 
 
753
    * Add '.hg' to the default ignore list.  (Martin Pool)
 
754
 
 
755
    * 'knit' is now the default disk format. This improves disk performance and
 
756
      utilization, increases incremental pull performance, robustness with SFTP
 
757
      and allows checkouts over SFTP to perform acceptably. 
 
758
      The initial Knit code was contributed by Johan Rydberg based on a
 
759
      specification by Martin Pool.
 
760
      (Robert Collins, Aaron Bentley, Johan Rydberg, Martin Pool).
 
761
 
 
762
    * New tool to generate all-in-one html version of the manual.  (Alexander
 
763
      Belchenko)
 
764
 
 
765
    * Hitting CTRL-C while doing an SFTP push will no longer cause stale locks
 
766
      to be left in the SFTP repository. (Robert Collins, Martin Pool).
 
767
 
 
768
    * New option 'diff --prefix' to control how files are named in diff
 
769
      output, with shortcuts '-p0' and '-p1' corresponding to the options for 
 
770
      GNU patch.  (Alexander Belchenko, Goffredo Baroncelli, Martin Pool)
 
771
 
 
772
    * Add --revision option to 'annotate' command.  (Olaf Conradi)
 
773
 
 
774
    * If bzr shows an unexpected revision-history after pulling (perhaps due
 
775
      to a reweave) it can now be corrected by 'bzr reconcile'.
 
776
      (Robert Collins)
 
777
 
 
778
  CHANGES:
 
779
 
 
780
    * Commit is now verbose by default, and shows changed filenames and the 
 
781
      new revision number.  (Robert Collins, Martin Pool)
 
782
 
 
783
    * Unify 'mv', 'move', 'rename'.  (#5379, Matthew Fuller)
 
784
 
 
785
    * 'bzr -h' shows help.  (#35940, Martin Pool, Ian Bicking)
 
786
 
 
787
    * Make 'pull' and 'push' remember location on failure using --remember.
 
788
      (Olaf Conradi)
 
789
 
 
790
    * For compatibility, make old format for using weaves inside metadir
 
791
      available as 'metaweave' format.  Rename format 'metadir' to 'default'.
 
792
      Clean up help for option --format in commands 'init', 'init-repo' and
 
793
      'upgrade'.  (Olaf Conradi)
2
794
 
3
795
  INTERNALS:
4
796
  
7
799
      management routines are now in bzrlib.lockablefiles. 
8
800
      (Aaron Bentley, Robert Collins, Martin Pool)
9
801
 
 
802
    * Transports can now raise DependencyNotPresent if they need a library
 
803
      which is not installed, and then another implementation will be 
 
804
      tried.  (Martin Pool)
 
805
 
 
806
    * Remove obsolete (and no-op) `decode` parameter to `Transport.get`.  
 
807
      (Martin Pool)
 
808
 
 
809
    * Using Tree Transform for merge, revert, tree-building
 
810
 
 
811
    * WorkingTree.create, Branch.create, WorkingTree.create_standalone,
 
812
      Branch.initialize are now deprecated. Please see BzrDir.create_* for
 
813
      replacement API's. (Robert Collins)
 
814
 
 
815
    * New BzrDir class represents the .bzr control directory and manages
 
816
      formatting issues. (Robert Collins)
 
817
 
 
818
    * New repository.InterRepository class encapsulates Repository to 
 
819
      Repository actions and allows for clean selection of optimised code
 
820
      paths. (Robert Collins)
 
821
 
 
822
    * bzrlib.fetch.fetch and bzrlib.fetch.greedy_fetch are now deprecated,
 
823
      please use 'branch.fetch' or 'repository.fetch' depending on your
 
824
      needs. (Robert Collins)
 
825
 
 
826
    * deprecated methods now have a 'is_deprecated' flag on them that can
 
827
      be checked, if you need to determine whether a given callable is 
 
828
      deprecated at runtime. (Robert Collins)
 
829
 
 
830
    * Progress bars are now nested - see
 
831
      bzrlib.ui.ui_factory.nested_progress_bar. (Robert Collins, Robey Pointer)
 
832
 
 
833
    * New API call get_format_description() for each type of format.
 
834
      (Olaf Conradi)
 
835
 
 
836
    * Changed branch.set_parent() to accept None to remove parent.
 
837
      (Olaf Conradi)
 
838
 
 
839
    * Deprecated BzrError AmbiguousBase.  (Olaf Conradi)
 
840
 
 
841
    * WorkingTree.branch is now a read only property.  (Robert Collins)
 
842
 
 
843
    * bzrlib.ui.text.TextUIFactory now accepts a bar_type parameter which
 
844
      can be None or a factory that will create a progress bar. This is
 
845
      useful for testing or for overriding the bzrlib.progress heuristic.
 
846
      (Robert Collins)
 
847
 
 
848
    * New API method get_physical_lock_status() to query locks present on a
 
849
      transport.  (Olaf Conradi)
 
850
 
 
851
    * Repository.reconcile now takes a thorough keyword parameter to allow
 
852
      requesting an indepth reconciliation, rather than just a data-loss 
 
853
      check. (Robert Collins)
 
854
 
 
855
    * bzrlib.ui.ui_factory protocol now supports 'get_boolean' to prompt
 
856
      the user for yes/no style input. (Robert Collins)
 
857
 
10
858
  TESTING:
11
859
 
12
860
    * SFTP tests now shortcut the SSH negotiation, reducing test overhead
13
861
      for testing SFTP protocol support. (Robey Pointer)
14
862
 
15
 
bzr 0.7rc1 2006-01-09
 
863
    * Branch formats are now tested once per implementation (see bzrlib.
 
864
      tests.branch_implementations. This is analagous to the transport
 
865
      interface tests, and has been followed up with working tree,
 
866
      repository and BzrDir tests. (Robert Collins)
 
867
 
 
868
    * New test base class TestCaseWithTransport provides a transport aware
 
869
      test environment, useful for testing any transport-interface using
 
870
      code. The test suite option --transport controls the transport used
 
871
      by this class (when its not being used as part of implementation
 
872
      contract testing). (Robert Collins)
 
873
 
 
874
    * Close logging handler on disabling the test log. This will remove the
 
875
      handler from the internal list inside python's logging module,
 
876
      preventing shutdown from closing it twice.  (Olaf Conradi)
 
877
 
 
878
    * Move test case for uncommit to blackbox tests.  (Olaf Conradi)
 
879
 
 
880
    * run_bzr and run_bzr_captured now accept a 'stdin="foo"' parameter which
 
881
      will provide String("foo") to the command as its stdin.
 
882
 
 
883
bzr 0.7 2006-01-09
16
884
 
17
885
  CHANGES:
18
886
 
41
909
      This gives better integration with user settings such as ProxyCommand.
42
910
      (James Henstridge)
43
911
 
44
 
    * Sftp paths can now be relative, or local, according to the lftp
45
 
      convention. Paths now take the form:
46
 
      sftp://user:pass@host:port/~/relative/path
47
 
      or
48
 
      sftp://user:pass@host:port/absolute/path
49
 
 
50
912
    * Permissions on files underneath .bzr/ are inherited from the .bzr 
51
913
      directory. So for a shared repository, simply doing 'chmod -R g+w .bzr/'
52
914
      will mean that future file will be created with group write permissions.
577
1439
    * Symlink support: working with symlinks when not in the root of a 
578
1440
      bzr tree was broken, patch from Scott James Remnant.
579
1441
 
580
 
 
581
1442
  IMPROVEMENTS:
582
1443
 
583
1444
    * 'branch' now accepts a --basis parameter which will take advantage