5
* Aliases now support quotation marks, so they can contain whitespace
8
* PyCurlTransport now use a single curl object. By specifying explicitly
9
the 'Range' header, we avoid the need to use two different curl objects
10
(and two connections to the same server). (Vincent Ladeuil)
12
* ``bzr commit`` does not prompt for a message until it is very likely to
13
succeed. (Aaron Bentley)
15
* ``bzr conflicts`` now takes --text to list pathnames of text conflicts
18
* Fix ``iter_lines_added_or_present_in_versions`` to use a set instead
19
of a list while checking if a revision id was requested. Takes 10s
20
off of the ``fileids_affected_by_revision_ids`` time, which is 10s
21
of the ``bzr branch`` time. Also improve ``fileids_...`` time by
22
filtering lines with a regex rather than multiple ``str.find()``
23
calls. (saves another 300ms) (John Arbash Meinel)
25
* Policy can be set for each configuration key. This allows keys to be
26
inherited properly across configuration entries. For example, this
27
should enable you to do::
30
push_location = sftp://host/srv/project/
31
push_location:policy = appendpath
33
And then a branch like ``/home/user/project/mybranch`` should get an
34
automatic push location of ``sftp://host/srv/project/mybranch``.
37
* Added ``bzr status --short`` to make status report svn style flags
38
for each file. For example::
48
* Change Revision serialization to only write out millisecond
49
resolution. Rather than expecting floating point serialization to
50
preserve more resolution than we need. (Henri Weichers, Martin Pool)
54
* bzr now supports Win32 UNC path (e.g. \\HOST\path).
55
(Alexander Belchenko, #57869)
57
* Replace broken fnmatch based ignore pattern matching with custom pattern
59
(Kent Gibson, Jan Hudec #57637)
64
No changes from 0.13rc1
66
bzr 0.13rc1 2006-11-27
70
* New command ``bzr remove-tree`` allows the removal of the working
74
* urllib uses shared keep-alive connections, so http
75
operations are substantially faster.
76
(Vincent Ladeuil, #53654)
78
* ``bzr export`` allows an optional branch parameter, to export a bzr
79
tree from some other url. For example:
80
``bzr export bzr.tar.gz http://bazaar-vcs.org/bzr/bzr.dev``
83
* Added ``bzr help topics`` to the bzr help system. This gives a
84
location for general information, outside of a specific command.
85
This includes updates for ``bzr help revisionspec`` the first topic
86
included. (Goffredo Baroncelli, John Arbash Meinel, #42714)
88
* WSGI-compatible HTTP smart server. See ``doc/http_smart_server.txt``.
91
* Knit files will now cache full texts only when the size of the
92
deltas is as large as the size of the fulltext. (Or after 200
93
deltas, whichever comes first). This has the most benefit on large
94
files with small changes, such as the inventory for a large project.
95
(eg For a project with 2500 files, and 7500 revisions, it changes
96
the size of inventory.knit from 11MB to 5.4MB) (John Arbash Meinel)
100
* New -D option given before the command line turns on debugging output
101
for particular areas. -Derror shows tracebacks on all errors.
104
* Clean up ``bzr selftest --benchmark bundle`` to correct an import,
105
and remove benchmarks that take longer than 10min to run.
108
* Use ``time.time()`` instead of ``time.clock()`` to decide on
109
progress throttling. Because ``time.clock()`` is actually CPU time,
110
so over a high-latency connection, too many updates get throttled.
113
* ``MemoryTransport.list_dir()`` would strip the first character for
114
files or directories in root directory. (John Arbash Meinel)
116
* New ``ChrootTransportDecorator``, accessible via the ``chroot+`` url
117
prefix. It disallows any access to locations above a set URL. (Andrew
122
* ``bzrlib/bzrdir.py`` was directly referencing ``bzrlib.workingtree``,
123
without importing it. This prevented ``bzr upgrade`` from working
124
unless a plugin already imported ``bzrlib.workingtree``
125
(John Arbash Meinel, #70716)
127
* Suppress the traceback on invalid URLs (Vincent Ladeuil, #70803).
129
* Give nicer error message when an http server returns a 403
130
error code. (Vincent Ladeuil, #57644).
132
* When a multi-range http GET request fails, try a single
133
range one. If it fails too, forget about ranges. Remember that until
134
the death of the transport and propagates that to the clones.
135
(Vincent Ladeuil, #62276, #62029).
137
* Handles user/passwords supplied in url from command
138
line (for the urllib implementation). Don't request already
139
known passwords (Vincent Ladeuil, #42383, #44647, #48527)
141
* _KnitIndex.add_versions() dictionary compresses revision ids as they
142
are added. This fixes bug where fetching remote revisions records
143
them as full references rather than integers. (John Arbash Meinel,
146
* ``bzr ignore`` strips trailing slashes in patterns.
147
Also ``bzr ignore`` rejects absolute paths. (Kent Gibson, #4559)
149
* ``bzr ignore`` takes multiple arguments. (Cheuksan Edward Wang, #29488)
151
* mv correctly handles paths that traverse symlinks.
152
(Aaron Bentley, #66964)
154
* Give nicer looking error messages when failing to connect over ssh.
155
(John Arbash Meinel, #49172)
157
* Pushing to a remote branch does not currently update the remote working
158
tree. After a remote push, ``bzr status`` and ``bzr diff`` on the remote
159
machine now show that the working tree is out of date.
160
(Cheuksan Edward Wang #48136)
162
* Use patiencediff instead of difflib for determining deltas to insert
163
into knits. This avoids the O(N^3) behavior of difflib. Patience
164
diff should be O(N^2). (Cheuksan Edward Wang, #65714)
166
* Running ``bzr log`` on nonexistent file gives an error instead of the
167
entire log history. (Cheuksan Edward Wang #50793)
169
* ``bzr cat`` can look up contents of removed or renamed files. If the
170
pathname is ambiguous, i.e. the files in the old and new trees have
171
different id's, the default is the file in the new tree. The user can
172
use "--name-from-revision" to select the file in the old tree.
173
(Cheuksan Edward Wang, #30190)
177
* TestingHTTPRequestHandler really handles the Range header
178
(previously it was ignoring it and returning the whole file,).
184
* Clean up ``bzr selftest --benchmark bundle`` to correct an import,
185
and remove benchmarks that take longer than 10min to run.
188
bzr 0.12rc1 2006-10-23
192
* ``bzr log`` now shows dotted-decimal revision numbers for all revisions,
193
rather than just showing a decimal revision number for revisions on the
194
mainline. These revision numbers are not yet accepted as input into bzr
195
commands such as log, diff etc. (Robert Collins)
197
* revisions can now be specified using dotted-decimal revision numbers.
198
For instance, ``bzr diff -r 1.2.1..1.2.3. (Robert Collins)
200
* ``bzr help commands`` output is now shorter (Aaron Bentley)
202
* New connection: ``bzr+http://`` which supports tunnelling the smart
203
protocol over an HTTP connection. If writing is enabled on the bzr
204
server, then you can write over the http connection.
207
* ``bzr`` now uses lazy importing to reduce the startup time. This has
208
a moderate effect on lots of actions, especially ones that have
209
little to do. For example ``bzr rocks`` time is down to 116ms from
210
283ms. (John Arbash Meinel)
212
* New Registry class to provide name-to-object registry-like support,
213
for example for schemes where plugins can register new classes to
214
do certain tasks (e.g. log formatters). Also provides lazy registration
215
to allow modules to be loaded on request. (John Arbash Meinel, Adeodato
220
* LogFormatter subclasses show now expect the 'revno' parameter to
221
show() to be a string rather than an int. (Robert Collins)
225
* ``TestCase.run_bzr``, ``run_bzr_captured``, and ``run_bzr_subprocess``
226
can take a ``working_dir='foo'`` parameter, which will change directory
227
for the command. (John Arbash Meinel)
229
* ``bzrlib.lazy_regex.lazy_compile`` can be used to create a proxy
230
around a regex, which defers compilation until first use.
233
* ``TestCase.run_bzr_subprocess`` defaults to supplying the
234
``--no-plugins`` parameter to ensure test reproducability, and avoid
235
problems with system-wide installed plugins. (John Arbash Meinel)
237
* Unique tree root ids are now supported. Newly created trees still
238
use the common root id for compatibility with bzr versions before 0.12.
241
* ``WorkingTree.set_root_id(None)`` is now deprecated. Please
242
pass in inventory.ROOT_ID if you want the default root id value.
243
(Robert Collins, John Arbash Meinel)
245
* New method ``WorkingTree.flush()`` which will write the current memory
246
inventory out to disk. At the same time, read_working_inventory will
247
no longer trash the current tree inventory if it has been modified within
248
the current lock, and the tree will now ``flush()`` automatically on
249
``unlock()``. ``WorkingTree.set_root_id()`` has been updated to take
250
advantage of this functionality. (Robert Collins, John Arbash Meinel)
252
* ``bzrlib.tsort.merge_sorted`` now accepts ``generate_revnos``. This
253
parameter will cause it to add another column to its output, which
254
contains the dotted-decimal revno for each revision, as a tuple.
257
* ``LogFormatter.show_merge`` is deprecated in favour of
258
``LogFormatter.show_merge_revno``. (Robert Collins)
262
* Avoid circular imports by creating a deprecated function for
263
``bzrlib.tree.RevisionTree``. Callers should have been using
264
``bzrlib.revisontree.RevisionTree`` anyway. (John Arbash Meinel,
267
* Don't use ``socket.MSG_WAITALL`` as it doesn't exist on all
268
platforms. (Martin Pool, #66356)
270
* Don't require ``Content-Type`` in range responses. Assume they are a
271
single range if ``Content-Type`` does not exist.
272
(John Arbash Meinel, #62473)
274
* bzr branch/pull no longer complain about progress bar cleanup when
275
interrupted during fetch. (Aaron Bentley, #54000)
277
* ``WorkingTree.set_parent_trees()`` uses the trees to directly write
278
the basis inventory, rather than going through the repository. This
279
allows us to have 1 inventory read, and 2 inventory writes when
280
committing a new tree. (John Arbash Meinel)
282
* When reverting, files that are not locally modified that do not exist
283
in the target are deleted, not just unversioned (Aaron Bentley)
285
* When trying to acquire a lock, don't fail immediately. Instead, try
286
a few times (up to 1 hour) before timing out. Also, report why the
287
lock is unavailable (John Arbash Meinel, #43521, #49556)
289
* Leave HttpTransportBase daughter classes decides how they
290
implement cloning. (Vincent Ladeuil, #61606)
292
* diff3 does not indicate conflicts on clean merge. (Aaron Bentley)
294
* If a commit fails, the commit message is stored in a file at the root of
295
the tree for later commit. (Cheuksan Edward Wang, Stefan Metzmacher,
300
* New test base class TestCaseWithMemoryTransport offers memory-only
301
testing facilities: its not suitable for tests that need to mutate disk
302
state, but most tests should not need that and should be converted to
303
TestCaseWithMemoryTransport. (Robert Collins)
305
* ``TestCase.make_branch_and_memory_tree`` now takes a format
306
option to set the BzrDir, Repository and Branch formats of the
307
created objects. (Robert Collins, John Arbash Meinel)
311
* Smart server transport test failures on windows fixed. (Lukáš Lalinský).
313
bzr 0.11rc2 2006-09-27
317
* Test suite hangs on windows fixed. (Andrew Bennets, Alexander Belchenko).
319
* Commit performance regression fixed. (Aaron Bentley, Robert Collins, John
322
bzr 0.11rc1 2006-09-25
326
* Knit files now wait to create their contents until the first data is
327
added. The old code used to create an empty .knit and a .kndx with just
328
the header. However, this caused a lot of extra round trips over sftp.
329
This can change the time for ``bzr push`` to create a new remote branch
330
from 160s down to 100s. This also affects ``bzr commit`` performance when
331
adding new files, ``bzr commit`` on a new kernel-like tree drops from 50s
332
down to 40s (John Arbash Meinel, #44692)
334
* When an entire subtree has been deleted, commit will now report that
335
just the top of the subtree has been deleted, rather than reporting
336
all the individual items. (Robert Collins)
338
* Commit performs one less XML parse. (Robert Collins)
340
* ``bzr checkout`` now operates on readonly branches as well
341
as readwrite branches. This fixes bug #39542. (Robert Collins)
343
* ``bzr bind`` no longer synchronises history with the master branch.
344
Binding should be followed by an update or push to synchronise the
345
two branches. This is closely related to the fix for bug #39542.
348
* ``bzrlib.lazy_import.lazy_import`` function to create on-demand
349
objects. This allows all imports to stay at the global scope, but
350
modules will not actually be imported if they are not used.
353
* Support bzr:// and bzr+ssh:// urls to work with the new RPC-based
354
transport which will be used with the upcoming high-performance smart
355
server. The new command ``bzr serve`` will invoke bzr in server mode,
356
which processes these requests. (Andrew Bennetts, Robert Collins, Martin
359
* New command ``bzr version-info`` which can be used to get a summary
360
of the current state of the tree. This is especially useful as part
361
of a build commands. See ``doc/version_info.txt`` for more information
366
* 'bzr inventory [FILE...]' allows restricting the file list to a
367
specific set of files. (John Arbash Meinel, #3631)
369
* Don't abort when annotating empty files (John Arbash Meinel, #56814)
371
* Add ``Stanza.to_unicode()`` which can be passed to another Stanza
372
when nesting stanzas. Also, add ``read_stanza_unicode`` to handle when
373
reading a nested Stanza. (John Arbash Meinel)
375
* Transform._set_mode() needs to stat the right file.
376
(John Arbash Meinel, #56549)
378
* Raise WeaveFormatError rather than StopIteration when trying to read
379
an empty Weave file. (John Arbash Meinel, #46871)
381
* Don't access e.code for generic URLErrors, only HTTPErrors have .code.
382
(Vincent Ladeuil, #59835)
384
* Handle boundary="" lines properly to allow access through a Squid proxy.
385
(John Arbash Meinel, #57723)
387
* revert now removes newly-added directories (Aaron Bentley, #54172)
389
* ``bzr upgrade sftp://`` shouldn't fail to upgrade v6 branches if there
390
isn't a working tree. (David Allouche, #40679)
392
* Give nicer error messages when a user supplies an invalid --revision
393
parameter. (John Arbash Meinel, #55420)
395
* Handle when LANG is not recognized by python. Emit a warning, but
396
just revert to using 'ascii'. (John Arbash Meinel, #35392)
398
* Don't use preexec_fn on win32, as it is not supported by subprocess.
401
* Skip specific tests when the dependencies aren't met. This includes
402
some ``setup.py`` tests when ``python-dev`` is not available, and
403
some tests that depend on paramiko. (John Arbash Meinel, Mattheiu Moy)
405
* Fallback to Paramiko properly, if no ``ssh`` executable exists on
406
the system. (Andrew Bennetts, John Arbash Meinel)
408
* ``Branch.bind(other_branch)`` no longer takes a write lock on the
409
other branch, and will not push or pull between the two branches.
410
API users will need to perform a push or pull or update operation if they
411
require branch synchronisation to take place. (Robert Collins, #47344)
413
* When creating a tarball or zipfile export, export unicode names as utf-8
414
paths. This may not work perfectly on all platforms, but has the best
415
chance of working in the common case. (John Arbash Meinel, #56816)
417
* When committing, only files that exist in working tree or basis tree
418
may be specified (Aaron Bentley, #50793)
422
* Fixes to run on Python 2.5 (Brian M. Carlson, Martin Pool, Marien Zwart)
426
* TestCaseInTempDir now creates a separate directory for HOME, rather
427
than having HOME set to the same location as the working directory.
430
* run_bzr_subprocess() can take an optional 'env_changes={}' parameter,
431
which will update os.environ inside the spawned child. It also can
432
take a 'universal_newlines=True', which helps when checking the output
433
of the command. (John Arbash Meinel)
435
* Refactor SFTP vendors to allow easier re-use when ssh is used.
438
* Transport.list_dir() and Transport.iter_files_recursive() should always
439
return urlescaped paths. This is now tested (there were bugs in a few
440
of the transports) (Andrew Bennetts, David Allouche, John Arbash Meinel)
442
* New utility function symbol_versioning.deprecation_string. Returns the
443
formatted string for a callable, deprecation format pair. (Robert Collins)
445
* New TestCase helper applyDeprecated. This allows you to call a callable
446
which is deprecated without it spewing to the screen, just by supplying
447
the deprecation format string issued for it. (Robert Collins)
449
* Transport.append and Transport.put have been deprecated in favor of
450
.append_bytes, .append_file, .put_bytes, and .put_file. This removes the
451
ambiguity in what type of object the functions take.
452
Transport.non_atomic_put_{bytes,file} has also been added. Which works
453
similarly to Transport.append() except for SFTP, it doesn't have a round
454
trip when opening the file. Also, it provides functionality for creating
455
a parent directory when trying to create a file, rather than raise
456
NoSuchFile and forcing the caller to repeat their request.
459
* WorkingTree has a new api ``unversion`` which allow the unversioning of
460
entries by their file id. (Robert Collins)
462
* WorkingTree.pending_merges is deprecated. Please use the get_parent_ids
463
(introduced in 0.10) method instead. (Robert Collins)
465
* WorkingTree has a new lock_tree_write method which locks the branch for
466
read rather than write. This is appropriate for actions which only need
467
the branch data for reference rather than mutation. A new decorator
468
needs_tree_write_lock is provided in the workingtree module. Like the
469
needs_read_lock and needs_write_lock decorators this allows static
470
declaration of the locking requirements of a function to ensure that
471
a lock is taken out for casual scripts. (Robert Collins, #54107)
473
* All WorkingTree methods which write to the tree, but not to the branch
474
have been converted to use ``needs_tree_write_lock`` rather than
475
``needs_write_lock``. Also converted is the revert, conflicts and tree
476
transform modules. This provides a modest performance improvement on
477
metadir style trees, due to the reduce lock-acquisition, and a more
478
significant performance improvement on lightweight checkouts from
479
remote branches, where trivial operations used to pay a significant
480
penalty. It also provides the basis for allowing readonly checkouts.
483
* Special case importing the standard library 'copy' module. This shaves
484
off 40ms of startup time, while retaining compatibility. See:
485
``bzrlib/inspect_for_copy.py`` for more details. (John Arbash Meinel)
487
* WorkingTree has a new parent class MutableTree which represents the
488
specialisations of Tree which are able to be altered. (Robert Collins)
490
* New methods mkdir and put_file_bytes_non_atomic on MutableTree that
491
mutate the tree and its contents. (Robert Collins)
493
* Transport behaviour at the root of the URL is now defined and tested.
494
(Andrew Bennetts, Robert Collins)
498
* New test helper classs MemoryTree. This is typically accessed via
499
``self.make_branch_and_memory_tree()`` in test cases. (Robert Collins)
501
* Add start_bzr_subprocess and stop_bzr_subprocess to allow test code to
502
continue running concurrently with a subprocess of bzr. (Andrew Bennetts,
505
* Add a new method ``Transport.get_smart_client()``. This is provided to
506
allow upgrades to a richer interface than the VFS one provided by
507
Transport. (Andrew Bennetts, Martin Pool)
512
* 'merge' now takes --uncommitted, to apply uncommitted changes from a
513
tree. (Aaron Bentley)
515
* 'bzr add --file-ids-from' can be used to specify another path to use
516
for creating file ids, rather than generating all new ones. Internally,
517
the 'action' passed to smart_add_tree() can return file_ids that
518
will be used, rather than having bzrlib generate new ones.
519
(John Arbash Meinel, #55781)
521
* ``bzr selftest --benchmark`` now allows a ``--cache-dir`` parameter.
522
This will cache some of the intermediate trees, and decrease the
523
setup time for benchmark tests. (John Arbash Meinel)
525
* Inverse forms are provided for all boolean options. For example,
526
--strict has --no-strict, --no-recurse has --recurse (Aaron Bentley)
528
* Serialize out Inventories directly, rather than using ElementTree.
529
Writing out a kernel sized inventory drops from 2s down to ~350ms.
530
(Robert Collins, John Arbash Meinel)
534
* Help diffutils 2.8.4 get along with binary tests (Marien Zwart: #57614)
536
* Change LockDir so that if the lock directory doesn't exist when
537
lock_write() is called, an attempt will be made to create it.
538
(John Arbash Meinel, #56974)
540
* ``bzr uncommit`` preserves pending merges. (John Arbash Meinel, #57660)
542
* Active FTP transport now works as intended. (ghozzy, #56472)
544
* Really fix mutter() so that it won't ever raise a UnicodeError.
545
It means it is possible for ~/.bzr.log to contain non UTF-8 characters.
546
But it is a debugging log, not a real user file.
547
(John Arbash Meinel, #56947, #53880)
549
* Change Command handle to allow Unicode command and options.
550
At present we cannot register Unicode command names, so we will get
551
BzrCommandError('unknown command'), or BzrCommandError('unknown option')
552
But that is better than a UnicodeError + a traceback.
553
(John Arbash Meinel, #57123)
555
* Handle TZ=UTC properly when reading/writing revisions.
556
(John Arbash Meinel, #55783, #56290)
558
* Use GPG_TTY to allow gpg --cl to work with gpg-agent in a pipeline,
559
(passing text to sign in on stdin). (John Arbash Meinel, #54468)
561
* External diff does the right thing for binaries even in foreign
562
languages. (John Arbash Meinel, #56307)
564
* Testament handles more cases when content is unicode. Specific bug was
565
in handling of revision properties. (John Arbash Meinel, Holger Krekel,
568
* The bzr selftest was failing on installed versions due to a bug in a new
569
test helper. (John Arbash Meinel, Robert Collins, #58057)
573
* ``bzrlib.cache_utf8`` contains ``encode()`` and ``decode()`` functions
574
which can be used to cache the conversion between utf8 and Unicode.
575
Especially helpful for some of the knit annotation code, which has to
576
convert revision ids to utf8 to annotate lines in storage.
579
* ``setup.py`` now searches the filesystem to find all packages which
580
need to be installed. This should help make the life of packagers
581
easier. (John Arbash Meinel)
587
* The hard-coded built-in ignore rules have been removed. There are
588
now two rulesets which are enforced. A user global one in
589
~/.bazaar/ignore which will apply to every tree, and the tree
590
specific one '.bzrignore'.
591
~/.bazaar/ignore will be created if it does not exist, but with
592
a more conservative list than the old default.
593
This fixes bugs with default rules being enforced no matter what.
594
The old list of ignore rules from bzr is available by
595
running 'bzr ignore --old-default-rules'.
596
(Robert Collins, Martin Pool, John Arbash Meinel)
598
* 'branches.conf' has been changed to 'locations.conf', since it can apply
599
to more locations than just branch locations.
5
604
* The revision specifier "revno:" is extended to accept the syntax
6
605
revno:N:branch. For example,
7
606
revno:42:http://bazaar-vcs.org/bzr/bzr.dev/ means revision 42 in
8
607
bzr.dev. (Matthieu Moy)
10
* No default ignore rules are applied by bzr - only the rules in .bzrignore
11
are considered. This fixes bugs with default rules being enforced no
12
matter what. The old list of ignore rules from bzr is available by
13
running 'bzr ignore --old-default-rules'.
15
609
* Tests updates to ensure proper URL handling, UNICODE support, and
16
610
proper printing when the user's terminal encoding cannot display
17
611
the path of a file that has been versioned.