~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to NEWS

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-09-17 21:19:56 UTC
  • mfrom: (1997.1.6 bind-does-not-push-or-pull)
  • Revision ID: pqm@pqm.ubuntu.com-20060917211956-6e30d07da410fd1a
(Robert Collins) Change the Branch bind method to just bind rather than binding and pushing (fixes #43744 and #39542)

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 
3
3
  IMPROVEMENTS:
4
4
 
 
5
    * Knit files now wait to create their contents until the first data is
 
6
      added. The old code used to create an empty .knit and a .kndx with just
 
7
      the header. However, this caused a lot of extra round trips over sftp.
 
8
      This can change the time for ``bzr push`` to create a new remote branch
 
9
      from 160s down to 100s. This also affects ``bzr commit`` performance when
 
10
      adding new files, ``bzr commit`` on a new kernel-like tree drops from 50s
 
11
      down to 40s (John Arbash Meinel, #44692)
 
12
 
 
13
    * When an entire subtree has been deleted, commit will now report that
 
14
      just the top of the subtree has been deleted, rather than reporting
 
15
      all the individual items. (Robert Collins)
 
16
 
 
17
    * Commit performs one less XML parse. (Robert Collins)
 
18
 
 
19
    * ``bzr checkout`` now operates on readonly branches as well
 
20
      as readwrite branches. This fixes bug #39542. (Robert Collins)
 
21
 
 
22
    * ``bzr bind`` no longer synchronises history with the master branch.
 
23
      Binding should be followed by an update or push to synchronise the 
 
24
      two branches. This is closely related to the fix for bug #39542.
 
25
      (Robert Collins)
 
26
 
 
27
    * ``bzrlib.lazy_import.lazy_import`` function to create on-demand 
 
28
      objects.  This allows all imports to stay at the global scope, but
 
29
      modules will not actually be imported if they are not used.
 
30
      (John Arbash Meinel)
 
31
 
 
32
    * Support bzr:// and bzr+ssh:// urls to work with the new RPC-based
 
33
      transport which will be used with the upcoming high-performance smart
 
34
      server. The new command ``bzr serve`` will invoke bzr in server mode,
 
35
      which processes these requests. (Andrew Bennetts, Robert Collins, Martin
 
36
      Pool)
 
37
 
 
38
  BUG FIXES:
 
39
 
 
40
    * Don't access e.code for generic URLErrors, only HTTPErrors have .code.
 
41
      (Vincent Ladeuil, #59835)
 
42
 
 
43
    * Handle boundary="" lines properly to allow access through a Squid proxy.
 
44
      (John Arbash Meinel, #57723)
 
45
 
 
46
    * revert now removes newly-added directories (Aaron Bentley, #54172)
 
47
 
 
48
    * ``bzr upgrade sftp://`` shouldn't fail to upgrade v6 branches if there 
 
49
      isn't a working tree. (David Allouche, #40679)
 
50
 
 
51
    * Give nicer error messages when a user supplies an invalid --revision
 
52
      parameter. (John Arbash Meinel, #55420)
 
53
 
 
54
    * Handle when LANG is not recognized by python. Emit a warning, but
 
55
      just revert to using 'ascii'. (John Arbash Meinel, #35392)
 
56
 
 
57
    * Don't use preexec_fn on win32, as it is not supported by subprocess.
 
58
      (John Arbash Meinel)
 
59
 
 
60
    * Skip specific tests when the dependencies aren't met. This includes
 
61
      some ``setup.py`` tests when ``python-dev`` is not available, and
 
62
      some tests that depend on paramiko. (John Arbash Meinel, Mattheiu Moy)
 
63
 
 
64
    * Fallback to Paramiko properly, if no ``ssh`` executable exists on
 
65
      the system. (Andrew Bennetts, John Arbash Meinel)
 
66
 
 
67
    * ``Branch.bind(other_branch)`` no longer takes a write lock on the
 
68
      other branch, and will not push or pull between the two branches.
 
69
      API users will need to perform a push or pull or update operation if they
 
70
      require branch synchronisation to take place. (Robert Collins, #47344)
 
71
 
 
72
  INTERNALS:
 
73
 
 
74
    * TestCaseInTempDir now creates a separate directory for HOME, rather
 
75
      than having HOME set to the same location as the working directory.
 
76
      (John Arbash Meinel)
 
77
 
 
78
    * run_bzr_subprocess() can take an optional 'env_changes={}' parameter,
 
79
      which will update os.environ inside the spawned child. It also can
 
80
      take a 'universal_newlines=True', which helps when checking the output
 
81
      of the command. (John Arbash Meinel)
 
82
 
 
83
    * Refactor SFTP vendors to allow easier re-use when ssh is used. 
 
84
      (Andrew Bennetts)
 
85
 
 
86
    * Transport.list_dir() and Transport.iter_files_recursive() should always
 
87
      return urlescaped paths. This is now tested (there were bugs in a few
 
88
      of the transports) (Andrew Bennetts, David Allouche, John Arbash Meinel)
 
89
 
 
90
    * New utility function symbol_versioning.deprecation_string. Returns the
 
91
      formatted string for a callable, deprecation format pair. (Robert Collins)
 
92
 
 
93
    * New TestCase helper applyDeprecated. This allows you to call a callable
 
94
      which is deprecated without it spewing to the screen, just by supplying
 
95
      the deprecation format string issued for it. (Robert Collins)
 
96
 
 
97
    * Transport.append and Transport.put have been deprecated in favor of
 
98
      .append_bytes, .append_file, .put_bytes, and .put_file. This removes the
 
99
      ambiguity in what type of object the functions take.
 
100
      Transport.non_atomic_put_{bytes,file} has also been added. Which works
 
101
      similarly to Transport.append() except for SFTP, it doesn't have a round
 
102
      trip when opening the file. Also, it provides functionality for creating
 
103
      a parent directory when trying to create a file, rather than raise
 
104
      NoSuchFile and forcing the caller to repeat their request.
 
105
      (John Arbash Meinel)
 
106
 
 
107
    * WorkingTree has a new api ``unversion`` which allow the unversioning of
 
108
      entries by their file id. (Robert Collins)
 
109
 
 
110
    * WorkingTree.pending_merges is deprecated.  Please use the get_parent_ids
 
111
      (introduced in 0.10) method instead. (Robert Collins)
 
112
 
 
113
    * WorkingTree has a new lock_tree_write method which locks the branch for
 
114
      read rather than write. This is appropriate for actions which only need
 
115
      the branch data for reference rather than mutation. A new decorator
 
116
      needs_tree_write_lock is provided in the workingtree module. Like the
 
117
      needs_read_lock and needs_write_lock decorators this allows static 
 
118
      declaration of the locking requirements of a function to ensure that
 
119
      a lock is taken out for casual scripts. (Robert Collins)
 
120
 
 
121
    * All WorkingTree methods which write to the tree, but not to the branch
 
122
      have been converted to use ``needs_tree_write_lock`` rather than 
 
123
      ``needs_write_lock``. Also converted is the revert, conflicts and tree
 
124
      transform modules. This provides a modest performance improvement on 
 
125
      metadir style trees, due to the reduce lock-acquisition, and a more
 
126
      significant performance improvement on lightweight checkouts from 
 
127
      remote branches, where trivial operations used to pay a significant 
 
128
      penalty. It also provides the basis for allowing readonly checkouts.
 
129
      (Robert Collins)
 
130
 
 
131
    * Special case importing the standard library 'copy' module. This shaves
 
132
      off 40ms of startup time, while retaining compatibility. See:
 
133
      ``bzrlib/inspect_for_copy.py`` for more details. (John Arbash Meinel)
 
134
 
 
135
    * WorkingTree has a new parent class MutableTree which represents the 
 
136
      specialisations of Tree which are able to be altered. (Robert Collins)
 
137
 
 
138
    * New methods mkdir and put_file_bytes_non_atomic on MutableTree that
 
139
      mutate the tree and its contents. (Robert Collins)
 
140
 
 
141
    * Transport behaviour at the root of the URL is now defined and tested.
 
142
      (Andrew Bennetts, Robert Collins)
 
143
 
 
144
  TESTING:
 
145
 
 
146
    * New test helper classs MemoryTree. This is typically accessed via
 
147
      ``self.make_branch_and_memory_tree()`` in test cases. (Robert Collins)
 
148
      
 
149
    * Add start_bzr_subprocess and stop_bzr_subprocess to allow test code to
 
150
      continue running concurrently with a subprocess of bzr. (Andrew Bennetts,
 
151
      Robert Collins)
 
152
 
 
153
    * Add a new method ``Transport.get_smart_client()``. This is provided to
 
154
      allow upgrades to a richer interface than the VFS one provided by
 
155
      Transport. (Andrew Bennetts, Martin Pool)
 
156
 
 
157
bzr 0.10  2006-08-29
 
158
  
 
159
  IMPROVEMENTS:
 
160
    * 'merge' now takes --uncommitted, to apply uncommitted changes from a
 
161
      tree.  (Aaron Bentley)
 
162
  
 
163
    * 'bzr add --file-ids-from' can be used to specify another path to use
 
164
      for creating file ids, rather than generating all new ones. Internally,
 
165
      the 'action' passed to smart_add_tree() can return file_ids that
 
166
      will be used, rather than having bzrlib generate new ones.
 
167
      (John Arbash Meinel, #55781)
 
168
 
 
169
    * ``bzr selftest --benchmark`` now allows a ``--cache-dir`` parameter.
 
170
      This will cache some of the intermediate trees, and decrease the
 
171
      setup time for benchmark tests. (John Arbash Meinel)
 
172
 
 
173
    * Inverse forms are provided for all boolean options.  For example,
 
174
      --strict has --no-strict, --no-recurse has --recurse (Aaron Bentley)
 
175
 
 
176
    * Serialize out Inventories directly, rather than using ElementTree.
 
177
      Writing out a kernel sized inventory drops from 2s down to ~350ms.
 
178
      (Robert Collins, John Arbash Meinel)
 
179
 
 
180
  BUG FIXES:
 
181
 
 
182
    * Help diffutils 2.8.4 get along with binary tests (Marien Zwart: #57614)
 
183
 
 
184
    * Change LockDir so that if the lock directory doesn't exist when
 
185
      lock_write() is called, an attempt will be made to create it.
 
186
      (John Arbash Meinel, #56974)
 
187
 
 
188
    * ``bzr uncommit`` preserves pending merges. (John Arbash Meinel, #57660)
 
189
 
 
190
    * Active FTP transport now works as intended. (ghozzy, #56472)
 
191
 
 
192
    * Really fix mutter() so that it won't ever raise a UnicodeError.
 
193
      It means it is possible for ~/.bzr.log to contain non UTF-8 characters.
 
194
      But it is a debugging log, not a real user file.
 
195
      (John Arbash Meinel, #56947, #53880)
 
196
 
 
197
    * Change Command handle to allow Unicode command and options.
 
198
      At present we cannot register Unicode command names, so we will get
 
199
      BzrCommandError('unknown command'), or BzrCommandError('unknown option')
 
200
      But that is better than a UnicodeError + a traceback.
 
201
      (John Arbash Meinel, #57123)
 
202
 
 
203
    * Handle TZ=UTC properly when reading/writing revisions.
 
204
      (John Arbash Meinel, #55783, #56290)
 
205
 
 
206
    * Use GPG_TTY to allow gpg --cl to work with gpg-agent in a pipeline,
 
207
      (passing text to sign in on stdin). (John Arbash Meinel, #54468)
 
208
 
 
209
    * External diff does the right thing for binaries even in foreign 
 
210
      languages. (John Arbash Meinel, #56307)
 
211
 
 
212
    * Testament handles more cases when content is unicode. Specific bug was
 
213
      in handling of revision properties. (John Arbash Meinel, Holger Krekel,
 
214
      #54723)
 
215
 
 
216
    * The bzr selftest was failing on installed versions due to a bug in a new
 
217
      test helper. (John Arbash Meinel, Robert Collins, #58057)
 
218
 
 
219
  INTERNALS:
 
220
 
 
221
    * ``bzrlib.cache_utf8`` contains ``encode()`` and ``decode()`` functions
 
222
      which can be used to cache the conversion between utf8 and Unicode.
 
223
      Especially helpful for some of the knit annotation code, which has to
 
224
      convert revision ids to utf8 to annotate lines in storage.
 
225
      (John Arbash Meinel)
 
226
 
 
227
    * ``setup.py`` now searches the filesystem to find all packages which
 
228
      need to be installed. This should help make the life of packagers
 
229
      easier. (John Arbash Meinel)
 
230
 
 
231
bzr 0.9.0  2006-08-11
 
232
 
 
233
  SURPRISES:
 
234
 
 
235
   * The hard-coded built-in ignore rules have been removed. There are
 
236
     now two rulesets which are enforced. A user global one in 
 
237
     ~/.bazaar/ignore which will apply to every tree, and the tree
 
238
     specific one '.bzrignore'.
 
239
     ~/.bazaar/ignore will be created if it does not exist, but with
 
240
     a more conservative list than the old default.
 
241
     This fixes bugs with default rules being enforced no matter what. 
 
242
     The old list of ignore rules from bzr is available by
 
243
     running 'bzr ignore --old-default-rules'.
 
244
     (Robert Collins, Martin Pool, John Arbash Meinel)
 
245
 
 
246
   * 'branches.conf' has been changed to 'locations.conf', since it can apply
 
247
     to more locations than just branch locations.
 
248
     (Aaron Bentley)
 
249
   
 
250
  IMPROVEMENTS:
 
251
 
 
252
   * The revision specifier "revno:" is extended to accept the syntax
 
253
     revno:N:branch. For example,
 
254
     revno:42:http://bazaar-vcs.org/bzr/bzr.dev/ means revision 42 in
 
255
     bzr.dev.  (Matthieu Moy)
 
256
 
5
257
   * Tests updates to ensure proper URL handling, UNICODE support, and
6
258
     proper printing when the user's terminal encoding cannot display 
7
259
     the path of a file that has been versioned.
28
280
   * 'bzr selftest' now shows a progress bar with the number of tests, and 
29
281
     progress made. 'make check' shows tests in -v mode, to be more useful
30
282
     for the PQM status window. (Robert Collins).
 
283
     When using a progress bar, failed tests are printed out, rather than
 
284
     being overwritten by the progress bar until the suite finishes.
 
285
     (John Arbash Meinel)
31
286
 
32
287
   * 'bzr selftest --benchmark' will run a new benchmarking selftest.
33
288
     'bzr selftest --benchmark --lsprof-timed' will use lsprofile to generate
51
306
   * 'bzr log --line' shows the revision number, and uses only the
52
307
     first line of the log message (#5162, Alexander Belchenko;
53
308
     Matthieu Moy)
 
309
 
 
310
   * 'bzr status' has had the --all option removed. The 'bzr ls' command
 
311
     should be used to retrieve all versioned files. (Robert Collins)
 
312
 
 
313
   * 'bzr bundle OTHER/BRANCH' will create a bundle which can be sent
 
314
     over email, and applied on the other end, while maintaining ancestry.
 
315
     This bundle can be applied with either 'bzr merge' or 'bzr pull',
 
316
     the same way you would apply another branch.
 
317
     (John Arbash Meinel, Aaron Bentley)
54
318
  
 
319
   * 'bzr whoami' can now be used to set your identity from the command line,
 
320
     for a branch or globally.  (Robey Pointer)
 
321
 
 
322
   * 'bzr checkout' now aliased to 'bzr co', and 'bzr annotate' to 'bzr ann'.
 
323
     (Michael Ellerman)
 
324
 
 
325
   * 'bzr revert DIRECTORY' now reverts the contents of the directory as well.
 
326
     (Aaron Bentley)
 
327
 
 
328
   * 'bzr get sftp://foo' gives a better error when paramiko is not present.
 
329
     Also updates things like 'http+pycurl://' if pycurl is not present.
 
330
     (John Arbash Meinel) (Malone #47821, #52204)
 
331
 
 
332
   * New env variable BZR_PROGRESS_BAR, sets the default progress bar type.
 
333
     Can be set to 'none' or 'dummy' to disable the progress bar, 'dots' or 
 
334
     'tty' to create the respective type. (John Arbash Meinel, #42197, #51107)
 
335
 
 
336
   * Improve the help text for 'bzr diff' to explain what various options do.
 
337
     (John Arbash Meinel, #6391)
 
338
 
 
339
   * 'bzr uncommit -r 10' now uncommits revisions 11.. rather than uncommitting
 
340
     revision 10. This makes -r10 more in line with what other commands do.
 
341
     'bzr uncommit' also now saves the pending merges of the revisions that
 
342
     were removed. So it is safe to uncommit after a merge, fix something,
 
343
     and commit again. (John Arbash Meinel, #32526, #31426)
 
344
 
 
345
   * 'bzr init' now also works on remote locations.
 
346
     (Wouter van Heyst, #48904)
 
347
 
 
348
   * HTTP support has been updated. When using pycurl we now support 
 
349
     connection keep-alive, which reduces dns requests and round trips.
 
350
     And for both urllib and pycurl we support multi-range requests, 
 
351
     which decreases the number of round-trips. Performance results for
 
352
     ``bzr branch http://bazaar-vcs.org/bzr/bzr.dev/`` indicate
 
353
     http branching is now 2-3x faster, and ``bzr pull`` in an existing 
 
354
     branch is as much as 4x faster.
 
355
     (Michael Ellerman, Johan Rydberg, John Arbash Meinel, #46768)
 
356
 
 
357
   * Performance improvements for sftp. Branching and pulling are now up to
 
358
     2x faster. Utilize paramiko.readv() support for async requests if it
 
359
     is available (paramiko > 1.6) (John Arbash Meinel)
55
360
 
56
361
  BUG FIXES:
57
362
 
62
367
    * Fix unnecessary requirement of sign-my-commits that it be run from
63
368
      a working directory.  (Martin Pool, Robert Collins)
64
369
 
 
370
    * 'bzr push location' will only remember the push location if it succeeds
 
371
      in connecting to the remote location. (#49742, John Arbash Meinel)
 
372
 
 
373
    * 'bzr revert' no longer toggles the executable bit on win32
 
374
      (#45010, John Arbash Meinel)
 
375
 
 
376
    * Handle broken pipe under win32 correctly. (John Arbash Meinel)
 
377
    
 
378
    * sftp tests now work correctly on win32 if you have a newer paramiko
 
379
      (John Arbash Meinel)
 
380
 
 
381
    * Cleanup win32 test suite, and general cleanup of places where
 
382
      file handles were being held open. (John Arbash Meinel)
 
383
 
 
384
    * When specifying filenames for 'diff -r x..y', the name of the file in the
 
385
      working directory can be used, even if its name is different in both x
 
386
      and y.
 
387
 
 
388
    * File-ids containing single- or double-quotes are handled correctly by
 
389
      push.  (#52227, Aaron Bentley)
 
390
 
 
391
    * Normalize unicode filenames to ensure cross-platform consistency.
 
392
      (John Arbash Meinel, #43689)
 
393
 
 
394
    * The argument parser can now handle '-' as an argument. Currently
 
395
      no code interprets it specially (it is mostly handled as a file named 
 
396
      '-'). But plugins, and future operations can use it.
 
397
      (John Arbash meinel, #50984)
 
398
 
 
399
    * Bundles can properly read binary files with a plain '\r' in them.
 
400
      (John Arbash Meinel, #51927)
 
401
 
 
402
    * Tuning iter_entries() to be more efficient (John Arbash Meinel, #5444)
 
403
 
 
404
    * Lots of win32 fixes (the test suite passes again).
 
405
      (John Arbash Meinel, #50155)
 
406
 
 
407
    * Handle openbsd returning None for sys.getfilesystemencoding() (#41183) 
 
408
 
 
409
    * Support ftp APPE (append) to allow Knits to be used over ftp (#42592)
 
410
 
 
411
    * Removals are only committed if they match the filespec (or if there is
 
412
      no filespec).  (#46635, Aaron Bentley)
 
413
 
 
414
    * smart-add recurses through all supplied directories 
 
415
      (John Arbash Meinel, #52578)
 
416
 
 
417
    * Make the bundle reader extra lines before and after the bundle text.
 
418
      This allows you to parse an email with the bundle inline.
 
419
      (John Arbash Meinel, #49182)
 
420
 
 
421
    * Change the file id generator to squash a little bit more. Helps when
 
422
      working with long filenames on windows. (Also helps for unicode filenames
 
423
      not generating hidden files). (John Arbash Meinel, #43801)
 
424
 
 
425
    * Restore terminal mode on C-c while reading sftp password.  (#48923, 
 
426
      Nicholas Allen, Martin Pool)
 
427
 
 
428
    * Timestamps are rounded to 1ms, and revision entries can be recreated
 
429
      exactly. (John Arbash Meinel, Jamie Wilkinson, #40693)
 
430
 
 
431
    * Branch.base has changed to a URL, but ~/.bazaar/locations.conf should
 
432
      use local paths, since it is user visible (John Arbash Meinel, #53653)
 
433
 
 
434
    * ``bzr status foo`` when foo was unversioned used to cause a full delta
 
435
      to be generated (John Arbash Meinel, #53638)
 
436
 
 
437
    * When reading revision properties, an empty value should be considered
 
438
      the empty string, not None (John Arbash Meinel, #47782)
 
439
 
 
440
    * ``bzr diff --diff-options`` can now handle binary files being changed.
 
441
      Also, the output is consistent when --diff-options is not supplied.
 
442
      (John Arbash Meinel, #54651, #52930)
 
443
 
 
444
    * Use the right suffixes for loading plugins (John Arbash Meinel, #51810)
 
445
 
 
446
    * Fix Branch.get_parent() to handle the case when the parent is not 
 
447
      accessible (John Arbash Meinel, #52976)
 
448
 
65
449
  INTERNALS:
66
450
 
67
451
    * Combine the ignore rules into a single regex rather than looping over
68
452
      them to reduce the threshold where  N^2 behaviour occurs in operations
69
453
      like status. (Jan Hudec, Robert Collins).
70
454
 
 
455
    * Appending to bzrlib.DEFAULT_IGNORE is now deprecated. Instead, use
 
456
      one of the add functions in bzrlib.ignores. (John Arbash Meinel)
 
457
 
71
458
    * 'bzr push' should only push the ancestry of the current revision, not
72
459
      all of the history in the repository. This is especially important for
73
460
      shared repositories. (John Arbash Meinel)
75
462
    * bzrlib.delta.compare_trees now iterates in alphabetically sorted order,
76
463
      rather than randomly walking the inventories. (John Arbash Meinel)
77
464
 
 
465
    * Doctests are now run in temporary directories which are cleaned up when
 
466
      they finish, rather than using special ScratchDir/ScratchBranch objects.
 
467
      (Martin Pool)
 
468
 
78
469
    * Split ``check`` into separate methods on the branch and on the repository,
79
470
      so that it can be specialized in ways that are useful or efficient for
80
471
      different formats.  (Martin Pool, Robert Collins)
87
478
      that do not use '.bzr' to store their data - i.e. '.svn', '.hg' etc.
88
479
      (Robert Collins, Jelmer Vernooij).
89
480
 
 
481
    * bzrlib.diff.external_diff can be redirected to any file-like object.
 
482
      Uses subprocess instead of spawnvp.
 
483
      (#4047, #48914, James Henstridge, John Arbash Meinel)
 
484
 
 
485
    * New command line option '--profile-imports', which will install a custom
 
486
      importer to log time to import modules and regex compilation time to 
 
487
      sys.stderr (John Arbash Meinel)
 
488
 
 
489
    * 'EmptyTree' is now deprecated, please use repository.revision_tree(None)
 
490
      instead. (Robert Collins)
 
491
 
 
492
    * "RevisionTree" is now in bzrlib/revisiontree.py. (Robert Collins)
 
493
 
90
494
bzr 0.8.2  2006-05-17
91
495
  
92
496
  BUG FIXES:
283
687
 
284
688
    * Add --revision option to 'annotate' command.  (Olaf Conradi)
285
689
 
286
 
    * Add --revision option to 'annotate' command.  (Olaf Conradi)
287
 
 
288
690
    * If bzr shows an unexpected revision-history after pulling (perhaps due
289
691
      to a reweave) it can now be corrected by 'bzr reconcile'.
290
692
      (Robert Collins)
953
1355
    * Symlink support: working with symlinks when not in the root of a 
954
1356
      bzr tree was broken, patch from Scott James Remnant.
955
1357
 
956
 
 
957
1358
  IMPROVEMENTS:
958
1359
 
959
1360
    * 'branch' now accepts a --basis parameter which will take advantage