Rev 5371: Merge the 2.2-final branch into trunk, in preparation for release. in http://bazaar.launchpad.net/~jameinel/bzr/2.3b1-dev
John Arbash Meinel
john at arbash-meinel.com
Fri Aug 6 20:55:09 BST 2010
At http://bazaar.launchpad.net/~jameinel/bzr/2.3b1-dev
------------------------------------------------------------
revno: 5371 [merge]
revision-id: john at arbash-meinel.com-20100806195445-7vsjls3uf8o6t7kt
parent: pqm at pqm.ubuntu.com-20100806124332-dywuju3s7bzn5y69
parent: john at arbash-meinel.com-20100806191616-vpb74nm9vzgzt0o9
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: 2.3b1-dev
timestamp: Fri 2010-08-06 14:54:45 -0500
message:
Merge the 2.2-final branch into trunk, in preparation for release.
Had to fix up one NEWS entry that accidentally got merged into the 2.2 section.
added:
tools/win32/py2exe_boot_common.py boot_common.py-20100726104937-42rsvhmwpm52nrv5-1
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/tests/test_progress.py test_progress.py-20060308160359-978c397bc79b7fda
bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
bzrlib/transform.py transform.py-20060105172343-dd99e54394d91687
bzrlib/ui/text.py text.py-20051130153916-2e438cffc8afc478
setup.py setup.py-20050314065409-02f8a0a6e3f9bc70
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS 2010-08-05 08:30:07 +0000
+++ b/NEWS 2010-08-06 19:54:45 +0000
@@ -82,6 +82,15 @@
Documentation
*************
+* First tests defined for sphinx, including a new bzrlib.tests.features.sphinx
+ to make the tests conditional.
+ (Vincent Ladeuil)
+
+* Added a builder/writer sphinx extension that can generate texinfo files. The
+ generated files are syntactically correct but the info navigation nodes
+ needs more work. (Vincent Ladeuil, #219334)
+
+
API Changes
***********
@@ -108,11 +117,30 @@
distributed evenly among the parallel test suites, rather than slowing
down just one suite. (Andrew Bennetts)
-bzr 2.2rc1
-##########
-
-:Codename: ???
-:2.2rc1: NOT RELEASED YET
+
+bzr 2.2
+#######
+
+:Codename: La Hulpe
+:2.2: 2010-08-06
+
+This release marks the start of another long-term-stable series. From
+here, we will only make bugfix releases on the 2.2 series (2.2.1, etc),
+while 2.3 will become our new development series. The 2.0 and 2.1 series
+will also continue to get bugfixes. (Currently 2.0 is planned to be
+supported for another 6 months.)
+
+This is primarily a bugfix and polish release over the 2.1 series, with
+a large number of bugs fixed (>120), and some performance improvements.
+
+There are some compatibility changes in this release. For users of bzrlib
+as a library, we now request that they call ``bzrlib.initialize`` and use
+the returned context manager appropriately. For commandline users we no
+longer guess user identity for ``bzr commit``, users must specify their
+identity using ``bzr whoami`` (you don't need to specify your identity for
+readonly operations).
+
+Users are encouraged to upgrade from the other stable series.
Compatibility Breaks
********************
@@ -128,9 +156,6 @@
macrobenchmark suite.
(Martin Pool)
-New Features
-************
-
Bug Fixes
*********
@@ -146,12 +171,27 @@
* Don't traceback trying to unversion children files of an already
unversioned directory. (Vincent Ladeuil, #494221)
+* ``HTTP/1.1` test servers now set a ``Content-Length`` header to comply
+ with pedantic ``HTTP/1.1`` clients. (Vincent Ladeuil, #568421)
+
+* Progress bars prefer to truncate the text message rather than the
+ counters. The spinner is shown between the network transfer indicator
+ and the progress message. Progress bars are correctly cleared off when
+ they finish. (Martin Pool, #611127)
+
+* Recursive binding for checkouts is now detected by bzr. A clear error
+ message is shown to the user. (Parth Malwankar, #405192)
+
Improvements
************
* Add ``bzrlib.merge.MergeIntoMerger``, which can merge part or all of a
tree, and works with unrelated branches. (Andrew Bennetts)
+* Add py2exe windows target ``bzrw.exe``. This allow for starting a Bazaar
+ GUI with out have a console open in the background.
+ (Gary van der Merwe, #433781)
+
Documentation
*************
@@ -164,9 +204,6 @@
* Delete ``ProgressTask.note``, which was deprecated in 2.1.
-Internals
-*********
-
Testing
*******
@@ -610,17 +647,6 @@
plugins to an all-in-one installation, ensure they are compiled and
installed with -O1 or help may not work. (Martin [gz])
-Documentation
-*************
-
-* First tests defined for sphinx, including a new bzrlib.tests.features.sphinx
- to make the tests conditional.
- (Vincent Ladeuil)
-
-* Added a builder/writer sphinx extension that can generate texinfo files. The
- generated files are syntactically correct but the info navigation nodes
- needs more work. (Vincent Ladeuil, #219334)
-
API Changes
***********
@@ -676,7 +702,7 @@
* No longer require zlib headers to build extensions, and remove the need
for seperate copy of zlib library on windows.
- (John Arbash Meinel, Martin <gzlist at googlemail.com>, #66923)
+ (John Arbash Meinel, Martin <gzlist at googlemail.com>, #566923)
Testing
*******
@@ -764,7 +790,7 @@
(Vincent Ladeuil, #474807)
* Properly handle ``param_name`` attribute for ``ListOption``.
- (Martin von Gagern, 387117)
+ (Martin von Gagern, #387117)
Improvements
************
@@ -884,7 +910,7 @@
* Parsing of command lines, for example in ``diff --using``, no longer
treats backslash as an escape character on Windows. (Gordon Tyler,
- #392248)
+ #392428)
* Plugins can be disabled by defining ``BZR_DISABLE_PLUGINS`` as
a list of plugin names separated by ':' (';' on windows).
=== modified file 'bzrlib/tests/test_progress.py'
--- a/bzrlib/tests/test_progress.py 2010-07-09 15:47:01 +0000
+++ b/bzrlib/tests/test_progress.py 2010-08-05 08:18:06 +0000
@@ -70,6 +70,21 @@
task.total_cnt = total
return task
+ def test_clear(self):
+ # <https://bugs.launchpad.net/bzr/+bug/611127> clear must actually
+ # send spaces to clear the line
+ out, view = self.make_view()
+ task = self.make_task(None, view, 'reticulating splines', 5, 20)
+ view.show_progress(task)
+ self.assertEqual(
+'\r/ reticulating splines 5/20 \r'
+ , out.getvalue())
+ view.clear()
+ self.assertEqual(
+'\r/ reticulating splines 5/20 \r'
+ + '\r' + 79 * ' ' + '\r',
+ out.getvalue())
+
def test_render_progress_no_bar(self):
"""The default view now has a spinner but no bar."""
out, view = self.make_view()
=== modified file 'bzrlib/tests/test_transform.py'
--- a/bzrlib/tests/test_transform.py 2010-05-13 17:32:55 +0000
+++ b/bzrlib/tests/test_transform.py 2010-07-21 10:38:31 +0000
@@ -859,10 +859,14 @@
myfile = create.new_file('myfile', root_id, 'myfile-text',
'myfile-id')
create.apply()
- # make the file and directory readonly in the hope this will prevent
- # renames
- osutils.make_readonly(self.wt.abspath('first-dir'))
- osutils.make_readonly(self.wt.abspath('myfile'))
+ if os.name == "posix" and sys.platform != "cygwin":
+ # posix filesystems fail on renaming if the readonly bit is set
+ osutils.make_readonly(self.wt.abspath('first-dir'))
+ elif os.name == "nt":
+ # windows filesystems fail on renaming open files
+ self.addCleanup(file(self.wt.abspath('myfile')).close)
+ else:
+ self.skip("Don't know how to force a permissions error on rename")
# now transform to rename
rename_transform, root_id = self.get_transform()
file_trans_id = rename_transform.trans_id_file_id('myfile-id')
@@ -870,13 +874,15 @@
rename_transform.adjust_path('newname', dir_id, file_trans_id)
e = self.assertRaises(errors.TransformRenameFailed,
rename_transform.apply)
- # Looks like:
+ # On nix looks like:
# "Failed to rename .../work/.bzr/checkout/limbo/new-1
# to .../first-dir/newname: [Errno 13] Permission denied"
- # so the first filename is not visible in it; we expect a strerror but
- # it may vary per OS and language so it's not checked here
+ # On windows looks like:
+ # "Failed to rename .../work/myfile to
+ # .../work/.bzr/checkout/limbo/new-1: [Errno 13] Permission denied"
+ # The strerror will vary per OS and language so it's not checked here
self.assertContainsRe(str(e),
- "Failed to rename .*first-dir.newname:")
+ "Failed to rename .*(first-dir.newname:|myfile)")
def test_set_executability_order(self):
"""Ensure that executability behaves the same, no matter what order.
=== modified file 'bzrlib/transform.py'
--- a/bzrlib/transform.py 2010-07-15 13:39:38 +0000
+++ b/bzrlib/transform.py 2010-08-06 19:54:45 +0000
@@ -1182,7 +1182,7 @@
if trans_id not in self._new_contents:
continue
new_path = self._limbo_name(trans_id)
- osutils.rename(old_path, new_path)
+ os.rename(old_path, new_path)
for descendant in self._limbo_descendants(trans_id):
desc_path = self._limbo_files[descendant]
desc_path = new_path + desc_path[len(old_path):]
@@ -2919,8 +2919,8 @@
def rename(self, from_, to):
"""Rename a file from one path to another."""
try:
- osutils.rename(from_, to)
- except (IOError, OSError), e:
+ os.rename(from_, to)
+ except OSError, e:
if e.errno in (errno.EEXIST, errno.ENOTEMPTY):
raise errors.FileExists(to, str(e))
# normal OSError doesn't include filenames so it's hard to see where
@@ -2942,8 +2942,8 @@
"""Reverse all renames that have been performed"""
for from_, to in reversed(self.past_renames):
try:
- osutils.rename(to, from_)
- except (OSError, IOError), e:
+ os.rename(to, from_)
+ except OSError, e:
raise errors.TransformRenameFailed(to, from_, str(e), e.errno)
# after rollback, don't reuse _FileMover
past_renames = None
=== modified file 'bzrlib/ui/text.py'
--- a/bzrlib/ui/text.py 2010-07-09 15:47:01 +0000
+++ b/bzrlib/ui/text.py 2010-08-05 08:18:06 +0000
@@ -304,11 +304,15 @@
# we need one extra space for terminals that wrap on last char
w = osutils.terminal_width()
if w is None:
- return w
+ return None
else:
return w - 1
def _show_line(self, s):
+ # sys.stderr.write("progress %r\n" % s)
+ width = self._avail_width()
+ if width is not None:
+ s = '%-*.*s' % (width, width, s)
self._term_file.write('\r' + s + '\r')
def clear(self):
=== modified file 'setup.py'
--- a/setup.py 2010-07-26 10:15:32 +0000
+++ b/setup.py 2010-08-02 19:56:52 +0000
@@ -9,6 +9,7 @@
import os
import os.path
import sys
+import copy
if sys.version_info < (2, 4):
sys.stderr.write("[ERROR] Not a supported Python version. Need 2.4+\n")
@@ -557,6 +558,8 @@
company_name = "Canonical Ltd.",
comments = META_INFO['description'],
)
+ gui_target = copy.copy(target)
+ gui_target.dest_base = "bzrw"
packages = BZRLIB['packages']
packages.remove('bzrlib')
@@ -647,7 +650,7 @@
console_targets = [target,
'tools/win32/bzr_postinstall.py',
]
- gui_targets = []
+ gui_targets = [gui_target]
data_files = topics_files + plugins_files
if 'qbzr' in plugins:
@@ -692,6 +695,8 @@
"dll_excludes": dll_excludes,
"dist_dir": "win32_bzr.exe",
"optimize": 2,
+ "custom_boot_script":
+ "tools/win32/py2exe_boot_common.py",
},
}
=== added file 'tools/win32/py2exe_boot_common.py'
--- a/tools/win32/py2exe_boot_common.py 1970-01-01 00:00:00 +0000
+++ b/tools/win32/py2exe_boot_common.py 2010-08-02 16:12:01 +0000
@@ -0,0 +1,35 @@
+# Common py2exe boot script - executed for all target types.
+
+# In the standard py2exe boot script, it setup stderr so that anything written
+# to it will be written to exe.log, and a message dialog is shown.
+# For Bazaar, we log most things to .bzr.log, and there are many things that
+# write to stderr, that are not errors, and so we don't want the py2exe dialog
+# message, So also blackhole stderr.
+
+import sys
+if sys.frozen == "windows_exe":
+
+ class Blackhole(object):
+ softspace = 0
+ def write(self, text):
+ pass
+ def flush(self):
+ pass
+ sys.stdout = Blackhole()
+ sys.stderr = Blackhole()
+ del Blackhole
+del sys
+
+# Disable linecache.getline() which is called by
+# traceback.extract_stack() when an exception occurs to try and read
+# the filenames embedded in the packaged python code. This is really
+# annoying on windows when the d: or e: on our build box refers to
+# someone elses removable or network drive so the getline() call
+# causes it to ask them to insert a disk in that drive.
+import linecache
+def fake_getline(filename, lineno, module_globals=None):
+ return ''
+linecache.orig_getline = linecache.getline
+linecache.getline = fake_getline
+
+del linecache, fake_getline
More information about the bazaar-commits
mailing list