- Formats using Knit-based repository formats are now explicitly
marked as deprecated. (Ian Clatworthy)
- Add support for bzr tags -r 1..2, that is we now support showing
tags applicable for a specified revision range. (Marius Kruger)
- authentication.conf now accepts pluggable read-only credential
stores. Such a plugin (netrc_credential_store) is now included,
handles the $HOME/.netrc file and can server as an example to
implement other plugins.
- shelve --list can now be used to list shelved changes.
- Add trailing slash to directories in all output of bzr ls, except
bzr ls --null. (Gordon P. Hemsley, #306424)
- bzr revision-info now supports a -d option to specify an
alternative branch. (Michael Hudson)
- Add connection to a C++ implementation of the Windows Shell Extension
which is able to fully replace the current Python implemented one.
Advantages include 64bit support and reduction in overhead for
processes which drag in shell extensions.
- Support the Claws mail client directly, rather than via
xdg-email. This prevents the display of an unnecessary modal
dialog in Claws, informing the user that a file has been
attached to the message, and works around bug #291847 in
xdg-utils which corrupts the destination address.
- When working on a case-insensitive case-preserving file-system, as
commonly found with Windows, bzr will often ignore the case of the
arguments specified by the user in preference to the case of an existing
item on the file-system or in the inventory to help prevent
counter-intuitive behaviour on Windows. (Mark Hammond)
- Allow BzrDir implementation to implement backing up of
control directory. (#139691)
- bzr push creating a new stacked branch will now only open a
single connection to the target machine. (John Arbash Meinel)
- Don’t call iteritems on transport_list_registry, because it may
change during iteration. (Martin Pool, #277048)
- Don’t make a broken branch when pushing an unstackable-format branch
that’s in a stackable shared repository to a location with default
stack-on location. (Andrew Bennetts, #291046)
- Don’t require embedding user in HTTP(S) URLs do use authentication.conf.
(Ben Jansen, Vincent Ladeuil, #300347)
- Fix a problem with CIFS client/server lag on windows colliding with
an invariant-per-process algorithm for generating AtomicFile names
(Adrian Wilkins, #304023)
- Fix bogus setUp signature in UnavailableFTPServer.
(Gary van der Merwe, #313498)
- Fix compilation error in _dirstate_helpers_c on SunOS/Solaris.
- Fix SystemError in _patiencediff_c module by calling
PyErr_NoMemory() before returning NULL in PatienceSequenceMatcher_new.
(Andrew Bennetts, #303206)
- Give proper error message for diff with non-existent dotted revno.
(Marius Kruger, #301969)
- Handle EACCES (permission denied) errors when launching a message
editor, and emit warnings when a configured editor cannot be
started. (Andrew Bennetts)
- $HOME/.netrc file is now recognized as a read-only credential store
if configured in authentication.conf with ‘password_encoding=netrc’
in the appropriate sections.
(Vincent Ladeuil, #103029)
- Opening a stacked branch now properly shares the connection, rather
than opening a new connection for the stacked-on branch.
(John Arbash meinel)
- Preserve transport decorators while following redirections.
(Vincent Ladeuil, #245964, #270863)
- Provides a finer and more robust filter for accepted redirections.
(Vincent Ladeuil, #303959, #265070)
- shelve paths are now interpreted relative to the current working
tree. (Aaron Bentley)
- Transport.readv() defaults to not reading more than 100MB in a
single array. Further RemoteTransport.readv sets this to 5MB to
work better with how it splits its requests.
(John Arbash Meinel, #303538)
- Pack repositories are now able to reload the pack listing and retry
the current operation if another action causes the data to be
repacked. (John Arbash Meinel, #153786)
- pull -v now respects the log_format configuration variable.
- push -v now works on non-initial pushes. (Aaron Bentley)
- Use the short status format when the short format is used for log.
(Vincent Ladeuil, #87179)
- Allow files to be renamed or moved via remove + add-by-id. (Charles
- Improved the formats help topic to explain why multiple formats
exist and to provide guidelines in selecting one. Introduced
two new supporting help topics: current-formats and other-formats.
- LRUCache(after_cleanup_size) was renamed to
after_cleanup_count and the old name deprecated. The new name is
used for clarity, and to avoid confusion with
LRUSizeCache(after_cleanup_size). (John Arbash Meinel)
- New ForeignRepository base class, to help with foreign branch
support (e.g. svn). (Jelmer Vernooij)
- node_distances and select_farthest can no longer be imported
from bzrlib.graph. They can still be imported from
bzrlib.deprecated_graph, which has been the preferred way to
import them since before 1.0. (Andrew Bennetts)
- The logic in commit now delegates inventory basis calculations to
the CommitBuilder object; this requires that the commit builder
in use has been updated to support the new recording_deletes and
record_delete methods. (Robert Collins)
- An HTTPS server is now available (it requires python-2.6). Future bzr
versions will allow the use of the python-2.6 ssl module that can be
installed for 2.5 and 2.4.
- bzr selftest now fails if new trailing white space is added to
the bazaar sources. It only checks changes not committed yet. This
means that PQM will now reject changes that introduce new trailing
whitespace. (Marius Kruger)
- Introduced new experimental formats called 1.12-preview and
1.12-preview-rich-root to enable testing of related pending
features, namely content filtering and filtered views.
- Added an InventoryEntry cache when deserializing inventories.
Can cut the time to iterate over multiple RevisionsTrees in half.
(John Arbash Meinel)
- Added bzrlib.fifo_cache.FIFOCache which is designed to have
minimal overhead versus using a plain dict for cache hits, at the
cost of not preserving the ‘active’ set as well as an LRUCache.
(John Arbash Meinel)
- bzrlib.patience_diff.unified_diff now properly uses a tab
character to separate the filename from the date stamp, and doesn’t
add trailing whitespace when a date stamp is not supplied.
(Adeodato Simó, John Arbash Meinel)
- DirStateWorkingTree and DirStateWorkingTreeFormat added
as base classes of WorkingTree4 and WorkingTreeFormat4
respectively. (Ian Clatworthy)
- KnitVersionedFiles._check_should_delta() now uses the
get_build_details api to avoid multiple hits to the index, and
to properly follow the compression_parent rather than assuming
it is the left-hand parent. (John Arbash Meinel)
- KnitVersionedFiles.get_record_stream() will now chose a
more optimal ordering when the keys are requested ‘unordered’.
Previously the order was fully random, now the records should be
returned from each pack in turn, in forward I/O order.
(John Arbash Meinel)
- mutter() will now flush the ~/.bzr.log if it has been more
than 2s since the last time it flushed. (John Arbash Meinel)
- New method bzrlib.repository.Repository.add_inventory_by_delta
allows adding an inventory via an inventory delta, which can be
more efficient for some repository types. (Robert Collins)
- Repository CommitBuilder objects can now accumulate an inventory
delta. To enable this functionality call builder.recording_deletes
and additionally call builder.record_delete when a delete
against the basis occurs. (Robert Collins)
- The default http handler has been changed from pycurl to urllib.
The default is still pycurl for https connections. (The only
advantage of pycurl is that it checks ssl certificates.)
(John Arbash Meinel)
- VersionedFiles.get_record_stream() can now return objects with a
storage_kind of chunked. This is a collection (list/tuple) of
strings. You can use osutils.chunks_to_lines() to turn them into
guaranteed ‘lines’ or you can use ''.join(chunks) to turn it
into a fulltext. This allows for some very good memory savings when
asking for many texts that share ancestry, as the individual chunks
can be shared between versions of the file. (John Arbash Meinel)
- pull -v and push -v use new function
bzrlib.log.show_branch_change (Aaron Bentley)