bzr 2.1.0b3
Codename: | after sprint recovery |
2.1.0b3: | 2009-11-16 |
This release was pushed up from its normal release cycle due to a
regression in python 2.4 compatibility in 2.1.0b2. Since this regression
was caught before 2.1.0b2 was officially announced, the full changelog
includes both 2.1.0b3 and 2.1.0b2 changes.
Highlights of 2.1.0b3 are: new globbing code for all commands on Windows,
the test suite now conforms to python’s trunk enhanced semantics (skip,
etc.), and bzr info -v will now report the correct branch and repo
formats for Remote objects.
New Features
- Users can define a shelve editor to provide shelf functionality at a
granularity finer than per-patch-hunk. (Aaron Bentley)
Bug Fixes
- Fix for shell completion and short options. (Benoît PIERRE)
- Hooks daughter classes should always call the base constructor.
(Alexander Belchenko, Vincent Ladeuil, #389648)
- Improve “Binary files differ” hunk handling. (Aaron Bentley, #436325)
- On Windows, do glob expansion at the command-line level (as is usually
done in bash, etc.) This means that all commands get glob expansion
(bzr status, bzr add, bzr mv, etc). It uses a custom command line
parser, which allows us to know if a given section was quoted. It means
you can now do bzr ignore "*.py".
(John Arbash Meinel, #425510, #426410, #194450)
- Sanitize commit messages that come in from the ‘-m’ flag. We translate
‘rn’ => ‘n’ and a plain ‘r’ => ‘n’. The storage layer doesn’t
allow those because XML store silently translate it anyway. (The parser
auto-translates rn => n in ways that are hard for us to catch.)
- Show correct branch and repository format descriptions in
bzr info -v on a smart server location. (Andrew Bennetts, #196080)
- The fix for bug #186920 accidentally broke compatibility with python
2.4. (Vincent Ladeuil, #475585)
- Using Repository.get_commit_builder().record_iter_changes() now
correctly sets self.inv_sha1 to a sha1 string and
self.new_inventory to an Inventory instance after calling
self.finish_inventory(). (Previously it accidently set both values
as a tuple on self.inv_sha1. This was missed because
repo.add_revision ignores the supplied inventory sha1 and recomputes
the sha1 from the repo directly. (John Arbash Meinel)
- Shelve command refuse to run if there is no real terminal.
(Alexander Belchenko)
- Avoid unnecessarily flushing of trace file; it’s now unbuffered at the
Python level. (Martin Pool)
Documentation
- Include Japanese translations for documentation (Inada Naoki)
- New API ui_factory.make_output_stream to be used for sending bulk
(rather than user-interaction) data to stdout. This automatically
coordinates with progress bars or other terminal activity, and can be
overridden by GUIs.
(Martin Pool, 493944)
Internals
- Some of the core groupcompress functionality now releases the GIL before
operation. Similar to how zlib and bz2 operate without the GIL in the
core compression and decompression routines. (John Arbash Meinel)
Testing
- -Dhpssvfs will now trigger on RemoteBzrDir._ensure_real, providing
more debugging of VFS access triggers. (Robert Collins)
- KnownFailure is now signalled to ExtendedTestResult using the same
method that Python 2.7 uses - addExpectedFailure. (Robert Collins)
- --parallel=fork is now compatible with –subunit.
(Robert Collins, Vincent Ladeuil, #419776)
- Reporting of failures shows test ids not descriptions and thus shows
parameterised tests correctly. (Robert Collins)
- TestNotApplicable is now handled within the TestCase.run method rather
than being looked for within ExtendedTestResult.addError. This
provides better handling with other TestResult objects, degrading to
sucess rather than error. (Robert Collins)
- The private method _testConcluded on ExtendedTestResult has been
removed - it was empty and unused. (Robert Collins)
- UnavailableFeature is now handled within the TestCase.run method rather
than being looked for within addError. If the Result object does not
have an addNotSupported method, addSkip is attempted instead, and
failing that addSuccess. (Robert Collins)
- When a TestResult does not have an addSkip method, skipped tests are now
reported as successful tests, rather than as errors. This change is
to make it possible to get a clean test run with a less capable
TestResult. (Robert Collins)