bzr 1.6rc1
This release candidate for bzr 1.6 solidifies the new branch stacking
feature. Bazaar now recommends that users upgrade all knit repositories,
because later formats are much faster. However, we plan to continue read/write and
upgrade support for knit repostories for the forseeable future. Several
other bugs and performance issues were fixed.
Changes
- Knit format repositories are deprecated and bzr will now emit
warnings whenever it encounters one. Use bzr upgrade to upgrade
knit repositories to pack format. (Andrew Bennetts)
Improvements
- bzr check can now be told which elements at a location it should
check. (Daniel Watkins)
- Commit now supports --exclude (or -x) to exclude some files
from the commit. (Robert Collins, #3117)
- Fetching data between repositories that have the same model but no
optimised fetcher will not reserialise all the revisions, increasing
performance. (Robert Collins, John Arbash Meinel)
- Give a more specific error when target branch is not reachable.
(James Westby)
- Implemented a custom walkdirs_utf8 implementation for win32.
This uses a pyrex extension to get direct access to the
FindFirstFileW style apis, rather than using listdir +
lstat. Shows a very strong improvement in commands like
status and diff which have to iterate the working tree.
Anywhere from 2x-6x faster depending on the size of the tree (bigger
trees, bigger benefit.) (John Arbash Meinel)
- New registry for log properties handles and the method in
LongLogFormatter to display the custom properties returned by the
registered handlers. (Guillermo Gonzalez, #162469)
Bug Fixes
- Add more tests that stacking does not create deltas spanning
physical repository boundaries.
(Martin Pool, #252428)
- Better message about incompatible repositories.
(Martin Pool, #206258)
- bzr branch --stacked ensures the destination branch format can
support stacking, even if the origin does not.
(Martin Pool)
- bzr export no longer exports .bzrrules.
(Ian Clatworthy)
- bzr serve --directory=/ now correctly allows the whole
filesystem to be accessed on Windows, not just the root of the drive
that Python is running from.
(Adrian Wilkins, #240910)
- Deleting directories by hand before running bzr rm will not
cause subsequent errors in bzr st and bzr commit.
(Robert Collins, #150438)
- Fix a test case that was failing if encoding wasn’t UTF-8.
(John Arbash Meinel, #247585)
- Fix “no buffer space available” error when branching with the new
smart server protocol to or from Windows.
(Andrew Bennetts, #246180)
- Fixed problem in branching from smart server.
(#249256, Michael Hudson, Martin Pool)
- Handle a file turning in to a directory in TreeTransform.
(James Westby, #248448)
API Changes
- MutableTree.commit has an extra optional keywork parameter
exclude that will be unconditionally supplied by the command
line UI - plugins that add tree formats may need an update.
(Robert Collins)
- The API minimum version for plugin compatibility has been raised to
1.6 - there are significant changes throughout the code base.
(Robert Collins)
- The generic fetch code now uses three attributes on Repository objects
to control fetch. The streams requested are controlled via :
_fetch_order and _fetch_uses_deltas. Setting these
appropriately allows different repository implementations to recieve
data in their optimial form. If the _fetch_reconcile is set then
a reconcile operation is triggered at the end of the fetch.
(Robert Collins)
- The put_on_disk and get_tar_item methods in
InventoryEntry were deprecated. (Ian Clatworthy)
- Repository.is_shared doesn’t take a read lock. It didn’t
need one in the first place (nobody cached the value, and
RemoteRepository wasn’t taking one either). This saves a round
trip when probing Pack repositories, as they read the pack-names
file when locked. And during probe, locking the repo isn’t very
useful. (John Arbash Meinel)
Internals
- bzrlib.branchbuilder.BranchBuilder is now much more capable of
putting together a real history without having to create a full
WorkingTree. It is recommended that tests that are not directly
testing the WorkingTree use BranchBuilder instead. See
BranchBuilder.build_snapshot or
TestCaseWithMemoryTree.make_branch_builder. (John Arbash Meinel)
- bzrlib.builtins.internal_tree_files broken into two giving a new
helper safe_relpath_files - used by the new exclude
parameter to commit. (Robert Collins)
- Make it easier to introduce new WorkingTree formats.
(Ian Clatworthy)
- The code for exporting trees was refactored not to use the
deprecated InventoryEntry methods. (Ian Clatworthy)
- RuleSearchers return () instead of [] now when there are no matches.
(Ian Clatworthy)