Bazaar Release Notes¶
bzr 2.0.7¶
- 2.0.7:
NOT RELEASED YET
Compatibility Breaks¶
Launchpad has announced that the
edge.launchpad.net
instance is deprecated and may be shut down in the future <http://blog.launchpad.net/general/edge-is-deprecated>. Bazaar has therefore been updated in this release to talk to the main (launchpad.net
) servers, rather than theedge
ones. (Vincent Ladeuil, #583667)
New Features¶
Bug Fixes¶
Avoid spurious ValueErrors when autopacking a subset of the repository, and seeing a revision without its related inventory (John Arbash Meinel, #437003)
Avoid UnicodeDecodeError in
bzr add
with multiple files under a non-ascii path on windows from symlink support addition. (Martin [gz], #686611)Fix activity reporting for pycurl when using https with some implementations of curl. (Vincent Ladeuil, #614713)
Improvements¶
Documentation¶
API Changes¶
Internals¶
Testing¶
bzr 2.0.6¶
- 2.0.6:
2010-09-17
The sixth release in our 2.0 series addresses several user-inconvenience bugs. None are critical, but upgrading is recommended for all users on earlier 2.0 releases.
Bug Fixes¶
Additional merges after an unrelated branch has been merged with its history no longer crash when deleted files are involved. (Vincent Ladeuil, John Arbash Meinel, #375898)
bzr add SYMLINK/FILE
now works properly when the symlink points to a previously-unversioned directory within the tree: the directory is marked versioned too. (Martin Pool, #192859)bzr commit SYMLINK
now works, rather than trying to commit the target of the symlink. (Martin Pool, John Arbash Meinel, #128562)bzr revert
now only takes write lock on working tree, instead of on both working tree and branch. (Danny van Heumen, #498409)bzr upgrade
now creates thebackup.bzr
directory with the same permissions as.bzr
directory on a POSIX OS. (Parth Malwankar, #262450)Don’t traceback trying to unversion children files of an already unversioned directory. (Vincent Ladeuil, #494221)
Don’t traceback when a lockdir’s
held/info
file is corrupt (e.g. contains only NUL bytes). Instead warn the user, and allowbzr break-lock
to remove it. (Andrew Bennetts, #619872)Fix
AttributeError on parent.children
when adding a file under a directory that was a symlink in the previous commit. (Martin Pool, #192859)Prevent
CHKMap.apply_delta
from generating non-canonical CHK maps, which can result in “missing referenced chk root keys” errors when fetching from repositories with affected revisions. (Andrew Bennetts, #522637)Raise ValueError instead of a string exception. (John Arbash Meinel, #586926)
Reduce peak memory by one copy of compressed text. (John Arbash Meinel, #566940)
Repositories accessed via a smart server now reject being stacked on a repository in an incompatible format, as is the case when accessing them via other methods. This was causing fetches from those repositories via a smart server (e.g. using
bzr branch
) to receive invalid data. (Andrew Bennetts, #562380)Selftest with versions of subunit that support
stopTestRun
will no longer error. This error was caused by 2.0 not being updated when upstream python merged the end of run patch, which chosestopTestRun
rather thandone
. (Robert Collins, #571437)When passing a file to
UTF8DirReader
make sure to close the current directory file handle after the chdir fails. Otherwise when passing many filenames into a command linebzr status
we would leak descriptors. (John Arbash Meinel, #583486)
Testing¶
build_tree_contents
can create symlinks. (Martin Pool, John Arbash Meinel)
bzr 2.0.5¶
- 2.0.5:
2010-03-23
This fifth release in our 2.0 series addresses several user-inconvenience bugs. None are critical, but upgrading is recommended for all users on earlier 2.0 releases.
Bug Fixes¶
Avoid
malloc(0)
inpatiencediff
, which is non-portable. (Martin Pool, #331095)Concurrent autopacking is more resilient to already-renamed pack files. If we find that a file we are about to obsolete is already obsoleted, we do not try to rename it, and we leave the file in
obsolete_packs
. The code is also fault tolerant if a file goes missing, assuming that another process already removed the file. (John Arbash Meinel, Gareth White, #507557)Cope with the lockdir
held/info
file being empty, which seems to happen fairly often if the process is suddenly interrupted while taking a lock. (Martin Pool, #185103)Give the warning about potentially slow cross-format fetches much earlier on in the fetch operation. Don’t show this message during upgrades, and show the correct format indication for remote repositories. (Martin Pool, #456077, #515356, #513157)
Handle renames correctly when there are files or directories that differ only in case. (Chris Jones, Martin Pool, #368931)
If
bzr push --create-prefix
triggers an unexpectedNoSuchFile
error, report that error rather than failing with an unhelpfulUnboundLocalError
. (Andrew Bennetts, #423563)Running
bzr
command without any arguments now shows bzr version number along with rest of the help text. (Parth Malwankar, #369501)Use osutils.O_NOINHERIT for some files on win32 to avoid PermissionDenied errors. (Inada Naoki, #524560)
Documentation¶
Added
location-alias
help topic. (Andrew Bennetts, #337834)Fixed CHM generation by moving the NEWS section template into a separate file. (Ian Clatworthy, #524184)
bzr 2.0.4¶
- Codename:
smooth sailing
- 2.0.4:
2010-01-21
The fourth bugfix-only release in the 2.0 series contains more than a
dozen bugfixes relative to 2.0.3. The primary focus is on handling
interruptions and concurrent operations more cleanly, there is also a fair
improvement to bzr export
when exporting a remote branch.
Bug Fixes¶
bzr annotate
on another branch with-r branch:...
no longer fails with anObjectNotLocked
error. (Andrew Bennetts, #496590)bzr export dir
now requests all file content as a record stream, rather than requsting the file content one file-at-a-time. This can make exporting over the network significantly faster (54min => 9min in one case). (John Arbash Meinel, #343218)bzr serve
no longer slowly leaks memory. The compiledbzrlib.bencode.Encoder()
class was using__del__
to cleanup and free resources, and it should have been using__dealloc__
. This will likely have an impact on any other process that is serving for an extended period of time. (John Arbash Meinel, #494406)Check for SIGINT (Ctrl-C) and other signals immediately if
readdir
returnsEINTR
by callingPyErr_CheckSignals
. This affected the optional_readdir_pyx
extension. (Andrew Bennetts, #495023)Concurrent autopacks will no longer lose a newly created pack file. There was a race condition, where if the reload happened at the right time, the second packer would forget the name of the newly added pack file. (John Arbash Meinel, Gareth White, #507566)
Give a clearer message if the lockdir disappears after being apparently successfully taken. (Martin Pool, #498378)
Give a warning when fetching between repositories (local or remote) with sufficiently different formats that the content will need to be serialized (ie
InterDifferingSerializer
orinventory-deltas
), so the user has a clue that upgrading could make it faster. (Martin Pool, #456077)If we fail to open
~/.bzr.log
write a clear message to stderr rather than usingwarning()
. The log file is opened before logging is set up, and it leads to very confusing: ‘no handlers for “bzr”’ messages for users, rather than something nicer. (John Arbash Meinel, Barry Warsaw, #503886)Refuse to build with any Pyrex 0.9.4 release, as they have known bugs. (Martin Pool, John Arbash Meinel, #449372)
setup.py bdist_rpm
now properly finds extra files needed for the build. (there is still the distutils bug http://bugs.python.org/issue644744) (Joe Julian, #175839)The 2a format wasn’t properly restarting autopacks when something changed underneath it (like another autopack). Now concurrent autopackers will properly succeed. (John Arbash Meinel, #495000)
TreeTransform
can now handle when a delta says that the file id for the tree root changes. Rather than trying to rename your working directory, or failing early saying that you can’t have multiple tree roots. This also fixes revert, update, and pull when the root id changes. (John Arbash Meinel, #494269, #504390)_update_current_block
no longer suppresses exceptions, so ^C at just the right time will get propagated, rather than silently failing to move the block pointer. (John Arbash Meinel, Gareth White, #495023)
Testing¶
We have a new
test_source
that ensures all pyrexcdef
functions handle exceptions somehow. (Possibly by setting# cannot_raise
rather than anexcept ?:
clause.) This should help prevent bugs like bug #495023. (John Arbash Meinel)
bzr 2.0.3¶
- Codename:
little italy
- 2.0.3:
2009-12-14
The third stable release of Bazaar has a small handful of bugfixes. As expected, this has no internal or external compatibility changes versus 2.0.2 (or 2.0.0).
Bug Fixes¶
bzr push --use-existing-dir
no longer crashes if the directory exists but contains an invalid.bzr
directory. (Andrew Bennetts, #423563)Content filters are now applied correctly after pull, merge and switch. (Ian Clatworthy, #385879)
Fix a potential segfault in the groupcompress hash map handling code. When inserting new entries, if the final hash bucket was empty, we could end up trying to access if
(last_entry+1)->ptr == NULL
. (John Arbash Meinel, #490228)Improve “Binary files differ” hunk handling. (Aaron Bentley, #436325)
bzr 2.0.2¶
- Codename:
after the scare
- 2.0.2:
2009-11-02
The second in our “let’s keep the stable bugfixes flowing” series. As expected this has a few (~9) bugfixes relative to 2.0.1, and no major api changes or features.
Bug Fixes¶
Avoid “NoneType has no attribute st_mode” error when files disappear from a directory while it’s being read. (Martin Pool, #446033)
Content filters are now applied correctly after revert. (Ian Clatworthy)
Diff parsing handles “Binary files differ” hunks. (Aaron Bentley, #436325)
Fetching from stacked pre-2a repository via a smart server no longer fails intermittently with “second push failed to complete”. (Andrew Bennetts, #437626)
Fix typos left after test_selftest refactoring. (Vincent Ladeuil, Matt Nordhoff, #461149)
Fixed
ObjectNotLocked
errors duringbzr log -r NNN somefile
. (Andrew Bennetts, #445171)PreviewTree file names are not limited by the encoding of the temp directory’s filesystem. (Aaron Bentley, #436794)
Improvements¶
bzr log
now read-locks branches exactly once, so makes better use of data caches. (Andrew Bennetts)
Documentation¶
Filtered views user documentation upgraded to refer to format 2a instead of pre-2.0 formats. (Ian Clatworthy)
bzr 2.0.1¶
- Codename:
Stability First
- 2.0.1:
2009-10-14
The first of our new ongoing bugfix-only stable releases has arrived. It includes a collection of 12 bugfixes applied to bzr 2.0.0, but does not include any of the feature development in the 2.1.0 series.
Bug Fixes¶
bzr add
in a tree that has files with\r
or\n
in the filename will issue a warning and skip over those files. (Robert Collins, #3918)bzr will attempt to authenticate with SSH servers that support
keyboard-interactive
auth but notpassword
auth when using Paramiko. (Andrew Bennetts, #433846)Fixed fetches from a stacked branch on a smart server that were failing with some combinations of remote and local formats. This was causing “unknown object type identifier 60” errors. (Andrew Bennetts, #427736)
Fixed
ObjectNotLocked
errors when doing some log and diff operations on branches via a smart server. (Andrew Bennetts, #389413)Handle things like
bzr add foo
andbzr rm foo
when the tree is at the root of a drive.osutils._cicp_canonical_relpath
always assumed thatabspath()
returned a path that did not have a trailing/
, but that is not true when working at the root of the filesystem. (John Arbash Meinel, Jason Spashett, #322807)Hide deprecation warnings for ‘final’ releases for python2.6. (John Arbash Meinel, #440062)
Improve the time for
bzr log DIR
for 2a format repositories. We had been using the same code path as for <2a formats, which required iterating over all objects in all revisions. (John Arbash Meinel, #374730)Make sure that we unlock the tree if we fail to create a TreeTransform object when doing a merge, and there is limbo, or pending-deletions directory. (Gary van der Merwe, #427773)
Occasional IndexError on renamed files have been fixed. Operations that set a full inventory in the working tree will now go via the apply_inventory_delta code path which is simpler and easier to understand than dirstates set_state_from_inventory method. This may have a small performance impact on operations built on _write_inventory, but such operations are already doing full tree scans, so no radical performance change should be observed. (Robert Collins, #403322)
Retrieving file text or mtime from a _PreviewTree has good performance when there are many changes. (Aaron Bentley)
The CHK index pages now use an unlimited cache size. With a limited cache and a large project, the random access of chk pages could cause us to download the entire cix file many times. (John Arbash Meinel, #402623)
When a file kind becomes unversionable after being added, a sensible error will be shown instead of a traceback. (Robert Collins, #438569)
Documentation¶
Improved README. (Ian Clatworthy)
Improved upgrade documentation for Launchpad branches. (Barry Warsaw)
bzr 2.0.0¶
- 2.0.0:
2009-09-22
- Codename:
Instant Karma
This release of Bazaar makes the 2a (previously ‘brisbane-core’) format the default when new branches or repositories are created. This format is substantially smaller and faster for many operations. Most of the work in this release focuses on bug fixes and stabilization, covering both 2a and previous formats. (See the Upgrade Guide for information on migrating existing projects.)
This release also improves the documentation content and presentation, including adding Windows HtmlHelp manuals.
The Bazaar team decided that 2.0 will be a long-term supported release, with bugfix-only 2.0.x releases based on it, continuing for at least six months or until the following stable release.
Changes from 2.0.0rc2 to final¶
Officially branded as 2.0.0 rather than 2.0 to clarify between things that “want to happen on the 2.0.x stable series” versus things that want to “land in 2.0.0”. (Changes how bzrlib._format_version_tuple() handles micro = 0.) (John Arbash Meinel)
bzr 2.0.0rc2¶
- 2.0.0rc2:
2009-09-10
New Features¶
Added post_commit hook for mutable trees. This allows the keywords plugin to expand keywords on files changed by the commit. (Ian Clatworthy, #408841)
Bug Fixes¶
Bazaar’s native protocol code now correctly handles EINTR, which most noticeably occurs if you break in to the debugger while connected to a bzr+ssh server. You can now can continue from the debugger (by typing ‘c’) and the process continues. However, note that pressing C-in the shell may still kill the SSH process, which is bug 162509, so you must sent a signal to the bzr process specifically, for example by typing
kill -QUIT PID
in another shell. (Martin Pool, #341535)bzr check
in pack-0.92, 1.6 and 1.9 format repositories will no longer report incorrect errors aboutMissing inventory ('TREE_ROOT', ...)
(Robert Collins, #416732)bzr info -v
on a 2a format still claimed that it was a “Development format” (John Arbash Meinel, #424392)bzr log stacked-branch
shows the full log including revisions that are in the fallback repository. (Regressed in 2.0rc1). (John Arbash Meinel, #419241)Clearer message when Bazaar runs out of memory, instead of a
MemoryError
traceback. (Martin Pool, #109115)Conversion to 2a will create a single pack for all the new revisions (as long as it ran without interruption). This improves both
bzr upgrade
andbzr pull
orbzr merge
from local branches in older formats. The autopack logic that occurs every 100 revisions during local conversions was not returning that pack’s identifier, which resulted in the partial packs created during the conversion not being consolidated at the end of the conversion process. (Robert Collins, #423818)Fetches from 2a to 2a are now again requested in ‘groupcompress’ order. Groups that are seen as ‘underutilized’ will be repacked on-the-fly. This means that when the source is fully packed, there is minimal overhead during the fetch, but if the source is poorly packed the result is a fairly well packed repository (not as good as ‘bzr pack’ but good-enough.) (Robert Collins, John Arbash Meinel, #402652)
Fix a potential segmentation fault when doing ‘log’ of a branch that had ghosts in its mainline. (Evaluating None as a tuple is bad.) (John Arbash Meinel, #419241)
groupcompress
sort order is now more stable, rather than relying ontopo_sort
ordering. The implementation is nowKnownGraph.gc_sort
. (John Arbash Meinel)Local data conversion will generate correct deltas. This is a critical bugfix vs 2.0rc1, and all 2.0rc1 users should upgrade to 2.0rc2 before converting repositories. (Robert Collins, #422849)
Network streams now decode adjacent records of the same type into a single stream, reducing layering churn. (Robert Collins)
Prevent some kinds of incomplete data from being committed to a 2a repository, such as revisions without inventories, a missing chk_bytes record for an inventory, or a missing text referenced by an inventory. (Andrew Bennetts, #423506, #406687)
Documentation¶
Fix assertion error about “_remember_remote_is_before” when pushing to older smart servers. (Andrew Bennetts, #418931)
Help on hooks no longer says ‘Not deprecated’ for hooks that are currently supported. (Ian Clatworthy, #422415)
PDF and CHM (Windows HtmlHelp) formats are now supported for the user documentation. The HTML documentation is better broken up into topics. (Ian Clatworthy)
The developer and foreign language documents are now separated out so that searching in the HTML and CHM files produces more useful results. (Ian Clatworthy)
The main table of contents now provides links to the new Migration Docs and Plugins Guide. (Ian Clatworthy)
bzr 2.0.0rc1¶
- Codename:
no worries
- 2.0.0rc1:
2009-08-26
Compatibility Breaks¶
The default format for bzr is now
2a
. This format brings many significant performance and size improvements. bzr can pull from any existing repository into a2a
one, but can only transfer from2a
intorich-root
repositories. The Upgrade guide has more information about this change. (Robert Collins)On Windows auto-detection of Putty’s plink.exe is disabled. Default SSH client for Windows is paramiko. User still can force usage of plink if explicitly set environment variable BZR_SSH=plink. (#414743, Alexander Belchenko)
New Features¶
bzr branch --switch
can now switch the checkout in the current directory to the newly created branch. (Lukáš Lalinský)
Bug Fixes¶
Further tweaks to handling of
bzr add
messages about ignored files. (Jason Spashett, #76616)Fetches were being requested in ‘groupcompress’ order, but weren’t recombining the groups. Thus they would ‘fragment’ to get the correct order, but not ‘recombine’ to actually benefit from it. Until we get recombining to work, switching to ‘unordered’ fetches avoids the fragmentation. (John Arbash Meinel, #402645)
Fix a pycurl related test failure on karmic by recognizing an error raised by newer versions of pycurl. (Vincent Ladeuil, #306264)
Fix a test failure on karmic by making a locale test more robust. (Vincent Ladeuil, #413514)
Fix IndexError printing CannotBindAddress errors. (Martin Pool, #286871)
Fix “Revision … not present” errors when upgrading stacked branches, or when doing fetches from a stacked source to a stacked target. (Andrew Bennetts, #399140)
bzr branch
of 2a repositories over HTTP is much faster. bzr now batches together small fetches from 2a repositories, rather than fetching only a few hundred bytes at a time. (Andrew Bennetts, #402657)
Improvements¶
A better description of the platform is shown in crash tracebacks,
bzr --version
andbzr selftest
. (Martin Pool, #409137)bzr can now (again) capture crash data through the apport library, so that a single human-readable file can be attached to bug reports. This can be disabled by using
-Dno_apport
on the command line, or by puttingno_apport
into thedebug_flags
section ofbazaar.conf
. (Martin Pool, Robert Collins, #389328)bzr push
locally on windows will no longer give a locking error with dirstate based formats. (Robert Collins)bzr shelve
andbzr unshelve
now work on windows. (Robert Collins, #305006)Commit of specific files no longer prevents using the iter_changes codepath. On 2a repositories, commit of specific files should now be as fast, or slightly faster, than a full commit. (Robert Collins)
The internal core code that handles specific file operations like
bzr st FILENAME
orbzr commit FILENAME
has been changed to include the parent directories if they have altered, and when a directory stops being a directory its children are always included. This fixes a number of causes forInconsistentDelta
errors, and permits faster commit of specific paths. (Robert Collins, #347649)
Documentation¶
New developer documentation for content filtering. (Martin Pool)
API Changes¶
bzrlib.shelf_ui
has had thefrom_args
convenience methods of its classes changed to manage lock lifetime of the trees they open in a way consistent with reader-exclusive locks. (Robert Collins, #305006)