Rev 5524: Merge 2.2 into trunk resolving conflicts and including fix for bug #632465 in http://bazaar.launchpad.net/~vila/bzr/integration/
Vincent Ladeuil
v.ladeuil+lp at free.fr
Fri Nov 5 14:07:46 GMT 2010
At http://bazaar.launchpad.net/~vila/bzr/integration/
------------------------------------------------------------
revno: 5524 [merge]
revision-id: v.ladeuil+lp at free.fr-20101105140745-e5xwb9b75a4i7ef1
parent: pqm at pqm.ubuntu.com-20101105083539-urkk2to9qakthagn
parent: pqm at pqm.ubuntu.com-20101105100319-o7zkwph6s6vktwie
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: trunk
timestamp: Fri 2010-11-05 15:07:45 +0100
message:
Merge 2.2 into trunk resolving conflicts and including fix for bug #632465
modified:
bzrlib/errors.py errors.py-20050309040759-20512168c4e14fbd
bzrlib/tests/test_errors.py test_errors.py-20060210110251-41aba2deddf936a8
bzrlib/tests/test_setup.py test_setup.py-20051208073730-4a59a6368c4efa04
doc/en/release-notes/bzr-2.3.txt NEWS-20050323055033-4e00b5db738777ff
doc/en/whats-new/whats-new-in-2.2.txt whatsnewin2.2.txt-20100304041442-cj7jdn23zakcw08l-1
setup.py setup.py-20050314065409-02f8a0a6e3f9bc70
-------------- next part --------------
=== modified file 'bzrlib/errors.py'
--- a/bzrlib/errors.py 2010-10-13 08:01:36 +0000
+++ b/bzrlib/errors.py 2010-11-05 14:07:45 +0000
@@ -723,6 +723,15 @@
self.bzrdir.open_repository()
except NoRepositoryPresent:
self.detail = ''
+ except Exception:
+ # Just ignore unexpected errors. Raising arbitrary errors
+ # during str(err) can provoke strange bugs. Concretely
+ # Launchpad's codehosting managed to raise NotBranchError
+ # here, and then get stuck in an infinite loop/recursion
+ # trying to str() that error. All this error really cares
+ # about that there's no working repository there, and if
+ # open_repository() fails, there probably isn't.
+ self.detail = ''
else:
self.detail = ': location is a repository'
else:
=== modified file 'bzrlib/tests/test_errors.py'
--- a/bzrlib/tests/test_errors.py 2010-09-13 02:32:44 +0000
+++ b/bzrlib/tests/test_errors.py 2010-10-11 05:06:26 +0000
@@ -672,6 +672,15 @@
err = errors.NotBranchError('path', bzrdir=bzrdir)
self.assertEqual('Not a branch: "path".', str(err))
+ def test_not_branch_bzrdir_with_recursive_not_branch_error(self):
+ class FakeBzrDir(object):
+ def open_repository(self):
+ # str() on the NotBranchError will trigger a call to this,
+ # which in turn will another, identical NotBranchError.
+ raise errors.NotBranchError('path', bzrdir=FakeBzrDir())
+ err = errors.NotBranchError('path', bzrdir=FakeBzrDir())
+ self.assertEqual('Not a branch: "path".', str(err))
+
def test_not_branch_laziness(self):
real_bzrdir = self.make_bzrdir('path')
class FakeBzrDir(object):
=== modified file 'bzrlib/tests/test_setup.py'
--- a/bzrlib/tests/test_setup.py 2010-11-02 11:49:15 +0000
+++ b/bzrlib/tests/test_setup.py 2010-11-05 14:07:45 +0000
@@ -43,22 +43,26 @@
This tests that the build process and man generator run correctly.
It also can catch new subdirectories that weren't added to setup.py.
"""
- if not os.path.isfile('setup.py'):
- raise TestSkipped('There is no setup.py file in current directory')
+ # setup.py must be run from the root source directory, but the tests
+ # are not necessarily invoked from there
+ self.source_dir = os.path.dirname(os.path.dirname(bzrlib.__file__))
+ if not os.path.isfile(os.path.join(self.source_dir, 'setup.py')):
+ raise TestSkipped(
+ 'There is no setup.py file adjacent to the bzrlib directory')
try:
import distutils.sysconfig
makefile_path = distutils.sysconfig.get_makefile_filename()
if not os.path.exists(makefile_path):
- raise TestSkipped('You must have the python Makefile installed to run this test.'
- ' Usually this can be found by installing "python-dev"')
+ raise TestSkipped(
+ 'You must have the python Makefile installed to run this'
+ ' test. Usually this can be found by installing'
+ ' "python-dev"')
except ImportError:
- raise TestSkipped('You must have distutils installed to run this test.'
- ' Usually this can be found by installing "python-dev"')
+ raise TestSkipped(
+ 'You must have distutils installed to run this test.'
+ ' Usually this can be found by installing "python-dev"')
self.log('test_build running in %s' % os.getcwd())
root_dir = osutils.mkdtemp()
- # setup.py must be run from the root source directory, but the tests
- # are not necessarily invoked from there
- self.source_dir = os.path.dirname(os.path.dirname(bzrlib.__file__))
try:
self.run_setup(['clean'])
# build is implied by install
=== modified file 'doc/en/release-notes/bzr-2.3.txt'
--- a/doc/en/release-notes/bzr-2.3.txt 2010-11-04 17:52:02 +0000
+++ b/doc/en/release-notes/bzr-2.3.txt 2010-11-05 14:07:45 +0000
@@ -73,6 +73,13 @@
* Missing files (files bzr add'ed and then OS deleted) are now shown in ``bzr
status`` output. (Rory Yorke, #134168)
+* ``NotBranchError`` no longer allows errors from calling
+ ``bzrdir.open_repository()`` to propagate. This is unhelpful at best,
+ and at worst can trigger infinite loops in callers. (Andrew Bennetts)
+
+* Windows installers no longer requires the Microsoft vcredist to be
+ installed. (Martin [gz], Gary van der Merwe, #632465)
+
Documentation
*************
=== modified file 'doc/en/whats-new/whats-new-in-2.2.txt'
--- a/doc/en/whats-new/whats-new-in-2.2.txt 2010-10-06 16:27:25 +0000
+++ b/doc/en/whats-new/whats-new-in-2.2.txt 2010-11-04 13:46:02 +0000
@@ -23,7 +23,7 @@
:doc:`../release-notes/index` for a full list.
Bazaar 2.2.1 includes all the fixes from 2.1.3 and 2.0.6 (that
-weren't included in 2.20).
+weren't included in 2.2.0).
See the :doc:`../release-notes/index` for details.
=== modified file 'setup.py'
--- a/setup.py 2010-10-14 21:22:48 +0000
+++ b/setup.py 2010-11-05 14:07:45 +0000
@@ -689,7 +689,10 @@
# MSWSOCK.dll is a system-specific library, which py2exe accidentally pulls
# in on Vista.
- dll_excludes.extend(["MSWSOCK.dll", "MSVCP60.dll", "powrprof.dll"])
+ dll_excludes.extend(["MSWSOCK.dll",
+ "MSVCP60.dll",
+ "MSVCP90.dll",
+ "powrprof.dll"])
options_list = {"py2exe": {"packages": packages + list(additional_packages),
"includes": includes,
"excludes": excludes,
More information about the bazaar-commits
mailing list