5
* The default disk format has changed. Please run 'bzr upgrade' in your
6
working trees to upgrade. This new default is compatible for network
7
operations, but not for local operations. That is, if you have two
8
versions of bzr installed locally, after upgrading you can only use the
9
bzr 0.15 version. This new default does not enable tags or nested-trees
10
as they are incompatible with bzr versions before 0.15 over the network.
12
* For users of bzrlib: Two major changes have been made to the working tree
13
api in bzrlib. The first is that many methods and attributes, including
14
the inventory attribute, are no longer valid for use until one of
15
lock_read/lock_write/lock_tree_write has been called, and become invalid
16
again after unlock is called. This has been done to improve performance
17
and correctness as part of the dirstate development. (Robert Collins,
18
John A Meinel, Martin Pool, and others).
20
* For users of bzrlib: The attribute 'tree.inventory' should be considered
21
readonly. Previously it was possible to directly alter this attribute, or
22
its contents, and have the tree notice this. This has been made
23
unsupported - it may work in some tree formats, but in the newer dirstate
24
format such actions will have no effect and will be ignored, or even
25
cause assertions. All operations possible can still be carried out by a
26
combination of the tree API, and the bzrlib.transform API. (Robert
27
Collins, John A Meinel, Martin Pool, and others).
31
* Support for OS Windows 98. Also .bzr.log on any windows system
32
saved in My Documents folder. (Alexander Belchenko)
34
* ``bzr mv`` enhanced to support already moved files.
35
In the past the mv command would have failed if the source file doesn't
36
exist. In this situation ``bzr mv`` would now detect that the file has
37
already moved and update the repository accordingly, if the target file
39
A new option ``--after`` has been added so that if two files already
40
exist, you could notify Bazaar that you have moved a (versioned) file
41
and replaced it with another. Thus in this case ``bzr move --after``
42
will only update the Bazaar identifier.
43
(Steffen Eichenberg, Marius Kruger)
45
* ``ls`` now works on treeless branches and remote branches.
48
* ``bzr help global-options`` describes the global options.
51
* ``bzr pull --overwrite`` will now correctly overwrite checkouts.
54
* Files are now allowed to change kind (e.g. from file to symlink).
55
Supported by ``commit``, ``revert`` and ``status``
58
* ``inventory`` and ``unknowns`` hidden in favour of ``ls``
61
* ``bzr help checkouts`` descibes what checkouts are and some possible
62
uses of them. (James Westby, Aaron Bentley)
64
* A new ``-d`` option to push, pull and merge overrides the default
65
directory. (Martin Pool)
67
* Branch format 6: smaller, and potentially faster than format 5. Supports
68
"append_history_only" mode, where the log view and revnos do not change,
69
except by being added to. Stores policy settings in
70
".bzr/branch/branch.conf".
72
* append_only branches: Format 6 branches may be configured so that log
73
view and revnos are always consistent. Either create the branch using
74
"bzr init --append-revisions-only" or edit the config file as descriped
75
in docs/configuration.txt.
77
* rebind: Format 6 branches retain the last-used bind location, so if you
78
"bzr unbind", you can "bzr bind" to bind to the previously-selected
81
* Builtin tags support, created and deleted by the ``tag`` command and
82
stored in the branch. Tags can be accessed with the revisionspec
83
``-rtag:``, and listed with ``bzr tags``. Tags are not versioned
84
at present. Tags require a network incompatible upgrade. To perform this
85
upgrade, run ``bzr upgrade --dirstate-with-subtree`` in your branch and
86
repositories. (Martin Pool)
88
* The bzr:// transport now has a well-known port number, 4155, which it will
89
use by default. (Andrew Bennetts, Martin Pool)
91
* Bazaar now looks for user-installed plugins before looking for site-wide
92
plugins. (Jonathan Lange)
94
* ``bzr resolve`` now detects and marks resolved text conflicts.
97
* There is now initial support for managing a forest of trees in bzr,
98
and splitting up existing trees into smaller subtrees, and finally
99
joining trees to make a larger tree. This is the first iteration
100
of this support. To enable the new ``join`` and ``split`` commands,
101
please run ``bzr upgrade --dirstate-with-subtree`` in your working
102
trees and repositories. (Aaron Bentley, Martin Pool, Robert Collins).
106
* Internally revision ids and file ids are now passed around as utf-8
107
bytestrings, rather than treating them as Unicode strings. This has
108
performance benefits for Knits, since we no longer need to decode the
109
revision id for each line of content, nor for each entry in the index.
110
This will also help with the future dirstate format.
113
* Reserved ids (any revision-id ending in a colon) are rejected by
114
versionedfiles, repositories, branches, and working trees
117
* Minor performance improvement by not creating a ProgressBar for
118
every KnitIndex we create. (about 90ms for a bzr.dev tree)
121
* New easier to use Branch hooks facility. There are five initial hooks,
122
all documented in bzrlib.branch.BranchHooks.__init__ - 'set_rh',
123
'post_push', 'post_pull', 'post_commit', 'post_uncommit'. These hooks
124
fire after the matching operation on a branch has taken place, and were
125
originally added for the branchrss plugin. (Robert Collins)
127
* New method ``Branch.push()`` which should be used when pushing from a
128
branch as it makes performance and policy decisions to match the UI
129
level command ``push``. (Robert Collins).
131
* Add a new method ``Tree.revision_tree`` which allows access to cached
132
trees for arbitrary revisions. This allows the in development dirstate
133
tree format to provide access to the callers to cached copies of
134
inventory data which are cheaper to access than inventories from the
136
(Robert Collins, Martin Pool)
138
* New Branch.last_revision_info method, this is being done to allow
139
optimization of requests for both the number of revisions and the last
140
revision of a branch with smartservers and potentially future branch
141
formats. (Wouter van Heyst, Robert Collins)
143
* Allow 'import bzrlib.plugins.NAME' to work when the plugin NAME has not
144
yet been loaded by load_plugins(). This allows plugins to depend on each
145
other for code reuse without requiring users to perform file-renaming
146
gymnastics. (Robert Collins)
148
* New Repository method 'gather_stats' for statistic data collection.
149
This is expected to grow to cover a number of related uses mainly
150
related to bzr info. (Robert Collins)
152
* Log formatters are now managed with a registry.
153
``log.register_formatter`` continues to work, but callers accessing
154
the FORMATTERS dictionary directly will not.
156
* Allow a start message to be passed to the ``edit_commit_message``
157
function. This will be placed in the message offered to the user
158
for editing above the separator. It allows a template commit message
159
to be used more easily. (James Westby)
161
* ``GPGStrategy.sign()`` will now raise ``BzrBadParameterUnicode`` if
162
you pass a Unicode string rather than an 8-bit string. Callers need
163
to be updated to encode first. (John Arbash Meinel)
165
* Branch.push, pull, merge now return Result objects with information
166
about what happened, rather than a scattering of various methods. These
167
are also passed to the post hooks. (Martin Pool)
171
* ``bzr annotate`` now uses dotted revnos from the viewpoint of the
172
branch, rather than the last changed revision of the file.
173
(John Arbash Meinel, #82158)
175
* Lock operations no longer hang if they encounter a permission problem.
178
* ``bzr push`` can resume a push that was canceled before it finished.
179
Also, it can push even if the target directory exists if you supply
180
the ``--use-existing-dir`` flag.
181
(John Arbash Meinel, #30576, #45504)
183
* Fix http proxy authentication when user and an optional
184
password appears in the ``*_proxy`` vars. (Vincent Ladeuil,
187
* ``bzr log branch/file`` works for local treeless branches
188
(Aaron Bentley, #84247)
190
* Fix problem with UNC paths on Windows 98. (Alexander Belchenko, #84728)
192
* Searching location of CA bundle for PyCurl in env variable (CURL_CA_BUNDLE),
193
and on win32 along the PATH. (Alexander Belchenko, #82086)
195
* ``bzr init`` works with unicode argument LOCATION.
196
(Alexander Belchenko, #85599)
198
* Raise DependencyNotPresent if pycurl do not support https. (Vincent
201
* Invalid proxy env variables should not cause a traceback.
202
(Vincent Ladeuil, #87765)
204
* Ignore patterns normalised to use '/' path separator.
205
(Kent Gibson, #86451)
209
* New ``--first`` option to ``bzr selftest`` to run specified tests
210
before the rest of the suite. (Martin Pool)
213
* Fix bzrtools shelve command for removed lines beginning with "--"
214
(Johan Dahlberg, #75577)
220
* ``bzr help global-options`` describes the global options. (Aaron Bentley)
224
* Skip documentation generation tests if the tools to do so are not
225
available. Fixes running selftest for installled copies of bzr.
226
(John Arbash Meinel, #80330)
228
* Fix the code that discovers whether bzr is being run from it's
229
working tree to handle the case when it isn't but the directory
230
it is in is below a repository. (James Westby, #77306)
233
bzr 0.14rc1 2007-01-16
237
* New connection: ``bzr+http://`` which supports tunnelling the smart
238
protocol over an HTTP connection. If writing is enabled on the bzr
239
server, then you can write over the http connection.
240
(Andrew Bennetts, John Arbash Meinel)
242
* Aliases now support quotation marks, so they can contain whitespace
245
* PyCurlTransport now use a single curl object. By specifying explicitly
246
the 'Range' header, we avoid the need to use two different curl objects
247
(and two connections to the same server). (Vincent Ladeuil)
249
* ``bzr commit`` does not prompt for a message until it is very likely to
250
succeed. (Aaron Bentley)
252
* ``bzr conflicts`` now takes --text to list pathnames of text conflicts
255
* Fix ``iter_lines_added_or_present_in_versions`` to use a set instead
256
of a list while checking if a revision id was requested. Takes 10s
257
off of the ``fileids_affected_by_revision_ids`` time, which is 10s
258
of the ``bzr branch`` time. Also improve ``fileids_...`` time by
259
filtering lines with a regex rather than multiple ``str.find()``
260
calls. (saves another 300ms) (John Arbash Meinel)
262
* Policy can be set for each configuration key. This allows keys to be
263
inherited properly across configuration entries. For example, this
264
should enable you to do::
267
push_location = sftp://host/srv/project/
268
push_location:policy = appendpath
270
And then a branch like ``/home/user/project/mybranch`` should get an
271
automatic push location of ``sftp://host/srv/project/mybranch``.
274
* Added ``bzr status --short`` to make status report svn style flags
275
for each file. For example::
283
* 'bzr selftest --clean-output' allows easily clean temporary tests
284
directories without running tests. (Alexander Belchenko)
286
* ``bzr help hidden-commands`` lists all hidden commands. (Aaron Bentley)
288
* ``bzr merge`` now has an option ``--pull`` to fall back to pull if
289
local is fully merged into remote. (Jan Hudec)
291
* ``bzr help formats`` describes available directory formats. (Aaron Bentley)
295
* A few tweaks directly to ``fileids_affected_by_revision_ids`` to
296
help speed up processing, as well allowing to extract unannotated
297
lines. Between the two ``fileids_affected_by_revision_ids`` is
298
improved by approx 10%. (John Arbash Meinel)
300
* Change Revision serialization to only write out millisecond
301
resolution. Rather than expecting floating point serialization to
302
preserve more resolution than we need. (Henri Weichers, Martin Pool)
304
* Test suite ends cleanly on Windows. (Vincent Ladeuil)
306
* When 'encoding_type' attribute of class Command is equal to 'exact',
307
force sys.stdout to be a binary stream on Windows, and therefore
308
keep exact line-endings (without LF -> CRLF conversion).
309
(Alexander Belchenko)
311
* Single-letter short options are no longer globally declared. (Martin
314
* Before using detected user/terminal encoding bzr should check
315
that Python has corresponding codec. (Alexander Belchenko)
317
* Formats for end-user selection are provided via a FormatRegistry (Aaron Bentley)
321
* ``bzr missing --verbose`` was showing adds/removals in the wrong
322
direction. (John Arbash Meinel)
324
* ``bzr annotate`` now defaults to showing dotted revnos for merged
325
revisions. It cuts them off at a depth of 12 characters, but you can
326
supply ``--long`` to see the full number. You can also use
327
``--show-ids`` to display the original revision ids, rather than
328
revision numbers and committer names. (John Arbash Meinel, #75637)
330
* bzr now supports Win32 UNC path (e.g. \\HOST\path).
331
(Alexander Belchenko, #57869)
333
* Win32-specific: output of cat, bundle and diff commands don't mangle
334
line-endings (Alexander Belchenko, #55276)
336
* Replace broken fnmatch based ignore pattern matching with custom pattern
338
(Kent Gibson, Jan Hudec #57637)
340
* pycurl and urllib can detect short reads at different places. Update
341
the test suite to test more cases. Also detect http error code 416
342
which was raised for that specific bug. Also enhance the urllib
343
robustness by detecting invalid ranges (and pycurl's one by detecting
344
short reads during the initial GET). (Vincent Ladeuil, #73948)
346
* The urllib connection sharing interacts badly with urllib2
347
proxy setting (the connections didn't go thru the proxy
348
anymore). Defining a proper ProxyHandler solves the
349
problem. (Vincent Ladeuil, #74759)
351
* Use urlutils to generate relative URLs, not osutils
352
(Aaron Bentley, #76229)
354
* ``bzr status`` in a readonly directory should work without giving
355
lots of errors. (John Arbash Meinel, #76299)
357
* Mention the revisionspec topic for the revision option help.
358
(Wouter van Heyst, #31663)
360
* Allow plugins import from zip archives.
361
(Alexander Belchenko, #68124)
363
* bzr rocks. It sure does! Fix case. (Vincent Ladeuil, #78026)
368
No changes from 0.13rc1
370
bzr 0.13rc1 2006-11-27
374
* New command ``bzr remove-tree`` allows the removal of the working
378
* urllib uses shared keep-alive connections, so http
379
operations are substantially faster.
380
(Vincent Ladeuil, #53654)
382
* ``bzr export`` allows an optional branch parameter, to export a bzr
383
tree from some other url. For example:
384
``bzr export bzr.tar.gz http://bazaar-vcs.org/bzr/bzr.dev``
387
* Added ``bzr help topics`` to the bzr help system. This gives a
388
location for general information, outside of a specific command.
389
This includes updates for ``bzr help revisionspec`` the first topic
390
included. (Goffredo Baroncelli, John Arbash Meinel, #42714)
392
* WSGI-compatible HTTP smart server. See ``doc/http_smart_server.txt``.
395
* Knit files will now cache full texts only when the size of the
396
deltas is as large as the size of the fulltext. (Or after 200
397
deltas, whichever comes first). This has the most benefit on large
398
files with small changes, such as the inventory for a large project.
399
(eg For a project with 2500 files, and 7500 revisions, it changes
400
the size of inventory.knit from 11MB to 5.4MB) (John Arbash Meinel)
404
* New -D option given before the command line turns on debugging output
405
for particular areas. -Derror shows tracebacks on all errors.
408
* Clean up ``bzr selftest --benchmark bundle`` to correct an import,
409
and remove benchmarks that take longer than 10min to run.
412
* Use ``time.time()`` instead of ``time.clock()`` to decide on
413
progress throttling. Because ``time.clock()`` is actually CPU time,
414
so over a high-latency connection, too many updates get throttled.
417
* ``MemoryTransport.list_dir()`` would strip the first character for
418
files or directories in root directory. (John Arbash Meinel)
420
* New ``ChrootTransportDecorator``, accessible via the ``chroot+`` url
421
prefix. It disallows any access to locations above a set URL. (Andrew
426
* Now _KnitIndex properly decode revision ids when loading index data.
427
And optimize the knit index parsing code. (Dmitry Vasiliev, John
430
* ``bzrlib/bzrdir.py`` was directly referencing ``bzrlib.workingtree``,
431
without importing it. This prevented ``bzr upgrade`` from working
432
unless a plugin already imported ``bzrlib.workingtree``
433
(John Arbash Meinel, #70716)
435
* Suppress the traceback on invalid URLs (Vincent Ladeuil, #70803).
437
* Give nicer error message when an http server returns a 403
438
error code. (Vincent Ladeuil, #57644).
440
* When a multi-range http GET request fails, try a single
441
range one. If it fails too, forget about ranges. Remember that until
442
the death of the transport and propagates that to the clones.
443
(Vincent Ladeuil, #62276, #62029).
445
* Handles user/passwords supplied in url from command
446
line (for the urllib implementation). Don't request already
447
known passwords (Vincent Ladeuil, #42383, #44647, #48527)
449
* _KnitIndex.add_versions() dictionary compresses revision ids as they
450
are added. This fixes bug where fetching remote revisions records
451
them as full references rather than integers. (John Arbash Meinel,
454
* ``bzr ignore`` strips trailing slashes in patterns.
455
Also ``bzr ignore`` rejects absolute paths. (Kent Gibson, #4559)
457
* ``bzr ignore`` takes multiple arguments. (Cheuksan Edward Wang, #29488)
459
* mv correctly handles paths that traverse symlinks.
460
(Aaron Bentley, #66964)
462
* Give nicer looking error messages when failing to connect over ssh.
463
(John Arbash Meinel, #49172)
465
* Pushing to a remote branch does not currently update the remote working
466
tree. After a remote push, ``bzr status`` and ``bzr diff`` on the remote
467
machine now show that the working tree is out of date.
468
(Cheuksan Edward Wang #48136)
470
* Use patiencediff instead of difflib for determining deltas to insert
471
into knits. This avoids the O(N^3) behavior of difflib. Patience
472
diff should be O(N^2). (Cheuksan Edward Wang, #65714)
474
* Running ``bzr log`` on nonexistent file gives an error instead of the
475
entire log history. (Cheuksan Edward Wang #50793)
477
* ``bzr cat`` can look up contents of removed or renamed files. If the
478
pathname is ambiguous, i.e. the files in the old and new trees have
479
different id's, the default is the file in the new tree. The user can
480
use "--name-from-revision" to select the file in the old tree.
481
(Cheuksan Edward Wang, #30190)
485
* TestingHTTPRequestHandler really handles the Range header
486
(previously it was ignoring it and returning the whole file,).
492
* Clean up ``bzr selftest --benchmark bundle`` to correct an import,
493
and remove benchmarks that take longer than 10min to run.
496
bzr 0.12rc1 2006-10-23
500
* ``bzr log`` now shows dotted-decimal revision numbers for all revisions,
501
rather than just showing a decimal revision number for revisions on the
502
mainline. These revision numbers are not yet accepted as input into bzr
503
commands such as log, diff etc. (Robert Collins)
505
* revisions can now be specified using dotted-decimal revision numbers.
506
For instance, ``bzr diff -r 1.2.1..1.2.3``. (Robert Collins)
508
4
* ``bzr help commands`` output is now shorter (Aaron Bentley)
510
6
* ``bzr`` now uses lazy importing to reduce the startup time. This has