#################### Bazaar Release Notes #################### .. toctree:: :maxdepth: 1 bzr 0.11 ######## :Released: 2006-10-02 * Smart server transport test failures on windows fixed. (Lukáš Lalinský). bzr 0.11rc2 ########### :Released: 2006-09-27 Bug Fixes ********* * Test suite hangs on windows fixed. (Andrew Bennets, Alexander Belchenko). * Commit performance regression fixed. (Aaron Bentley, Robert Collins, John Arbash Meinel). bzr 0.11rc1 ########### :Released: 2006-09-25 Improvements ************ * Knit files now wait to create their contents until the first data is added. The old code used to create an empty .knit and a .kndx with just the header. However, this caused a lot of extra round trips over SFTP. This can change the time for ``bzr push`` to create a new remote branch from 160s down to 100s. This also affects ``bzr commit`` performance when adding new files, ``bzr commit`` on a new kernel-like tree drops from 50s down to 40s (John Arbash Meinel, #44692) * When an entire subtree has been deleted, commit will now report that just the top of the subtree has been deleted, rather than reporting all the individual items. (Robert Collins) * Commit performs one less XML parse. (Robert Collins) * ``bzr checkout`` now operates on readonly branches as well as readwrite branches. This fixes bug #39542. (Robert Collins) * ``bzr bind`` no longer synchronises history with the master branch. Binding should be followed by an update or push to synchronise the two branches. This is closely related to the fix for bug #39542. (Robert Collins) * ``bzrlib.lazy_import.lazy_import`` function to create on-demand objects. This allows all imports to stay at the global scope, but modules will not actually be imported if they are not used. (John Arbash Meinel) * Support ``bzr://`` and ``bzr+ssh://`` URLS to work with the new RPC-based transport which will be used with the upcoming high-performance smart server. The new command ``bzr serve`` will invoke bzr in server mode, which processes these requests. (Andrew Bennetts, Robert Collins, Martin Pool) * New command ``bzr version-info`` which can be used to get a summary of the current state of the tree. This is especially useful as part of a build commands. See ``doc/version_info.txt`` for more information (John Arbash Meinel) Bug Fixes ********* * ``'bzr inventory [FILE...]'`` allows restricting the file list to a specific set of files. (John Arbash Meinel, #3631) * Don't abort when annotating empty files (John Arbash Meinel, #56814) * Add ``Stanza.to_unicode()`` which can be passed to another Stanza when nesting stanzas. Also, add ``read_stanza_unicode`` to handle when reading a nested Stanza. (John Arbash Meinel) * Transform._set_mode() needs to stat the right file. (John Arbash Meinel, #56549) * Raise WeaveFormatError rather than StopIteration when trying to read an empty Weave file. (John Arbash Meinel, #46871) * Don't access e.code for generic URLErrors, only HTTPErrors have .code. (Vincent Ladeuil, #59835) * Handle boundary="" lines properly to allow access through a Squid proxy. (John Arbash Meinel, #57723) * revert now removes newly-added directories (Aaron Bentley, #54172) * ``bzr upgrade sftp://`` shouldn't fail to upgrade v6 branches if there isn't a working tree. (David Allouche, #40679) * Give nicer error messages when a user supplies an invalid --revision parameter. (John Arbash Meinel, #55420) * Handle when LANG is not recognized by python. Emit a warning, but just revert to using 'ascii'. (John Arbash Meinel, #35392) * Don't use ``preexec_fn`` on win32, as it is not supported by subprocess. (John Arbash Meinel) * Skip specific tests when the dependencies aren't met. This includes some ``setup.py`` tests when ``python-dev`` is not available, and some tests that depend on paramiko. (John Arbash Meinel, Mattheiu Moy) * Fallback to Paramiko properly, if no ``ssh`` executable exists on the system. (Andrew Bennetts, John Arbash Meinel) * ``Branch.bind(other_branch)`` no longer takes a write lock on the other branch, and will not push or pull between the two branches. API users will need to perform a push or pull or update operation if they require branch synchronisation to take place. (Robert Collins, #43744) * When creating a tarball or zipfile export, export unicode names as utf-8 paths. This may not work perfectly on all platforms, but has the best chance of working in the common case. (John Arbash Meinel, #56815) * When committing, only files that exist in working tree or basis tree may be specified (Aaron Bentley, #50793) Portability *********** * Fixes to run on Python 2.5 (Brian M. Carlson, Martin Pool, Marien Zwart) Internals ********* * TestCaseInTempDir now creates a separate directory for HOME, rather than having HOME set to the same location as the working directory. (John Arbash Meinel) * ``run_bzr_subprocess()`` can take an optional ``env_changes={}`` parameter, which will update os.environ inside the spawned child. It also can take a ``universal_newlines=True``, which helps when checking the output of the command. (John Arbash Meinel) * Refactor SFTP vendors to allow easier re-use when SSH is used. (Andrew Bennetts) * ``Transport.list_dir()`` and ``Transport.iter_files_recursive()`` should always return urlescaped paths. This is now tested (there were bugs in a few of the transports) (Andrew Bennetts, David Allouche, John Arbash Meinel) * New utility function ``symbol_versioning.deprecation_string``. Returns the formatted string for a callable, deprecation format pair. (Robert Collins) * New TestCase helper applyDeprecated. This allows you to call a callable which is deprecated without it spewing to the screen, just by supplying the deprecation format string issued for it. (Robert Collins) * Transport.append and Transport.put have been deprecated in favor of ``.append_bytes``, ``.append_file``, ``.put_bytes``, and ``.put_file``. This removes the ambiguity in what type of object the functions take. ``Transport.non_atomic_put_{bytes,file}`` has also been added. Which works similarly to ``Transport.append()`` except for SFTP, it doesn't have a round trip when opening the file. Also, it provides functionality for creating a parent directory when trying to create a file, rather than raise NoSuchFile and forcing the caller to repeat their request. (John Arbash Meinel) * WorkingTree has a new api ``unversion`` which allow the unversioning of entries by their file id. (Robert Collins) * ``WorkingTree.pending_merges`` is deprecated. Please use the ``get_parent_ids`` (introduced in 0.10) method instead. (Robert Collins) * WorkingTree has a new ``lock_tree_write`` method which locks the branch for read rather than write. This is appropriate for actions which only need the branch data for reference rather than mutation. A new decorator ``needs_tree_write_lock`` is provided in the workingtree module. Like the ``needs_read_lock`` and ``needs_write_lock`` decorators this allows static declaration of the locking requirements of a function to ensure that a lock is taken out for casual scripts. (Robert Collins, #54107) * All WorkingTree methods which write to the tree, but not to the branch have been converted to use ``needs_tree_write_lock`` rather than ``needs_write_lock``. Also converted is the revert, conflicts and tree transform modules. This provides a modest performance improvement on metadir style trees, due to the reduce lock-acquisition, and a more significant performance improvement on lightweight checkouts from remote branches, where trivial operations used to pay a significant penalty. It also provides the basis for allowing readonly checkouts. (Robert Collins) * Special case importing the standard library 'copy' module. This shaves off 40ms of startup time, while retaining compatibility. See: ``bzrlib/inspect_for_copy.py`` for more details. (John Arbash Meinel) * WorkingTree has a new parent class MutableTree which represents the specialisations of Tree which are able to be altered. (Robert Collins) * New methods mkdir and ``put_file_bytes_non_atomic`` on MutableTree that mutate the tree and its contents. (Robert Collins) * Transport behaviour at the root of the URL is now defined and tested. (Andrew Bennetts, Robert Collins) Testing ******* * New test helper classs MemoryTree. This is typically accessed via ``self.make_branch_and_memory_tree()`` in test cases. (Robert Collins) * Add ``start_bzr_subprocess`` and ``stop_bzr_subprocess`` to allow test code to continue running concurrently with a subprocess of bzr. (Andrew Bennetts, Robert Collins) * Add a new method ``Transport.get_smart_client()``. This is provided to allow upgrades to a richer interface than the VFS one provided by Transport. (Andrew Bennetts, Martin Pool) .. vim: tw=74 ft=rst ff=unix