Rev 3945: (mbp) small refactorings of upgrade in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Mon Jan 19 10:25:10 GMT 2009
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 3945
revision-id: pqm at pqm.ubuntu.com-20090119102507-0ue83url4iguuol1
parent: pqm at pqm.ubuntu.com-20090119030630-3xdyyi4xj69md8e4
parent: mbp at sourcefrog.net-20090116075048-kcpmohmcxm9jlfwg
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Mon 2009-01-19 10:25:07 +0000
message:
(mbp) small refactorings of upgrade
modified:
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/progress.py progress.py-20050610070202-df9faaab791964c0
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/tests/blackbox/test_upgrade.py test_upgrade.py-20060120060132-b41e5ed2f886ad28
bzrlib/tests/bzrdir_implementations/test_bzrdir.py test_bzrdir.py-20060131065642-0ebeca5e30e30866
bzrlib/tests/test_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
bzrlib/upgrade.py history2weaves.py-20050818063535-e7d319791c19a8b2
------------------------------------------------------------
revno: 3943.2.5
revision-id: mbp at sourcefrog.net-20090116075048-kcpmohmcxm9jlfwg
parent: mbp at sourcefrog.net-20090116024935-3jp2s7dqelxvk1io
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: hpss-upgrade
timestamp: Fri 2009-01-16 18:50:48 +1100
message:
deprecate needs_format_conversion(format=None)
modified:
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/remote.py remote.py-20060720103555-yeeg2x51vn0rbtdp-1
bzrlib/tests/bzrdir_implementations/test_bzrdir.py test_bzrdir.py-20060131065642-0ebeca5e30e30866
bzrlib/tests/test_bzrdir.py test_bzrdir.py-20060131065654-deba40eef51cf220
------------------------------------------------------------
revno: 3943.2.4
revision-id: mbp at sourcefrog.net-20090116024935-3jp2s7dqelxvk1io
parent: mbp at sourcefrog.net-20090116024337-7m8qst4klrx5pklz
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: hpss-upgrade
timestamp: Fri 2009-01-16 13:49:35 +1100
message:
Move backup progress indicators from upgrade.py into backup_bzrdir, and tweak text
modified:
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/tests/blackbox/test_upgrade.py test_upgrade.py-20060120060132-b41e5ed2f886ad28
bzrlib/upgrade.py history2weaves.py-20050818063535-e7d319791c19a8b2
------------------------------------------------------------
revno: 3943.2.3
revision-id: mbp at sourcefrog.net-20090116024337-7m8qst4klrx5pklz
parent: mbp at sourcefrog.net-20090116021855-tpv7k2calih400cu
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: hpss-upgrade
timestamp: Fri 2009-01-16 13:43:37 +1100
message:
Don't do string interpolation if there are no arguments
modified:
bzrlib/progress.py progress.py-20050610070202-df9faaab791964c0
------------------------------------------------------------
revno: 3943.2.2
revision-id: mbp at sourcefrog.net-20090116021855-tpv7k2calih400cu
parent: mbp at sourcefrog.net-20090116020656-hyvtq0b4nu6mezqm
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: hpss-upgrade
timestamp: Fri 2009-01-16 13:18:55 +1100
message:
Small refactoring to upgrade
modified:
bzrlib/upgrade.py history2weaves.py-20050818063535-e7d319791c19a8b2
------------------------------------------------------------
revno: 3943.2.1
revision-id: mbp at sourcefrog.net-20090116020656-hyvtq0b4nu6mezqm
parent: pqm at pqm.ubuntu.com-20090115233242-4bxyn4zcj2a0ksfk
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: hpss-upgrade
timestamp: Fri 2009-01-16 13:06:56 +1100
message:
doc/import cleanups
modified:
bzrlib/upgrade.py history2weaves.py-20050818063535-e7d319791c19a8b2
=== modified file 'bzrlib/bzrdir.py'
--- a/bzrlib/bzrdir.py 2009-01-08 19:48:48 +0000
+++ b/bzrlib/bzrdir.py 2009-01-16 07:50:48 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2005, 2006, 2007, 2008 Canonical Ltd
+# Copyright (C) 2005, 2006, 2007, 2008, 2009 Canonical Ltd
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -524,9 +524,22 @@
:return: Tuple with old path name and new path name
"""
- self.root_transport.copy_tree('.bzr', 'backup.bzr')
- return (self.root_transport.abspath('.bzr'),
- self.root_transport.abspath('backup.bzr'))
+ pb = ui.ui_factory.nested_progress_bar()
+ try:
+ # FIXME: bug 300001 -- the backup fails if the backup directory
+ # already exists, but it should instead either remove it or make
+ # a new backup directory.
+ #
+ # FIXME: bug 262450 -- the backup directory should have the same
+ # permissions as the .bzr directory (probably a bug in copy_tree)
+ old_path = self.root_transport.abspath('.bzr')
+ new_path = self.root_transport.abspath('backup.bzr')
+ pb.note('making backup of %s' % (old_path,))
+ pb.note(' to %s' % (new_path,))
+ self.root_transport.copy_tree('.bzr', 'backup.bzr')
+ return (old_path, new_path)
+ finally:
+ pb.finished()
def retire_bzrdir(self, limit=10000):
"""Permanently disable the bzrdir.
@@ -1308,6 +1321,8 @@
# if the format is not the same as the system default,
# an upgrade is needed.
if format is None:
+ symbol_versioning.warn(symbol_versioning.deprecated_in((1, 13, 0))
+ % 'needs_format_conversion(format=None)')
format = BzrDirFormat.get_default_format()
return not isinstance(self._format, format.__class__)
@@ -1355,6 +1370,9 @@
def needs_format_conversion(self, format=None):
"""Format 4 dirs are always in need of conversion."""
+ if format is None:
+ symbol_versioning.warn(symbol_versioning.deprecated_in((1, 13, 0))
+ % 'needs_format_conversion(format=None)')
return True
def open_repository(self):
@@ -1516,6 +1534,9 @@
def needs_format_conversion(self, format=None):
"""See BzrDir.needs_format_conversion()."""
if format is None:
+ symbol_versioning.warn(symbol_versioning.deprecated_in((1, 13, 0))
+ % 'needs_format_conversion(format=None)')
+ if format is None:
format = BzrDirFormat.get_default_format()
if not isinstance(self._format, format.__class__):
# it is not a meta dir format, conversion is needed.
=== modified file 'bzrlib/progress.py'
--- a/bzrlib/progress.py 2008-12-17 08:18:14 +0000
+++ b/bzrlib/progress.py 2009-01-16 02:43:37 +0000
@@ -118,7 +118,10 @@
def note(self, fmt_string, *args):
"""Record a note without disrupting the progress bar."""
# XXX: shouldn't be here; put it in mutter or the ui instead
- self.ui_factory.note(fmt_string % args)
+ if args:
+ self.ui_factory.note(fmt_string % args)
+ else:
+ self.ui_factory.note(fmt_string)
def clear(self):
# XXX: shouldn't be here; put it in mutter or the ui instead
=== modified file 'bzrlib/remote.py'
--- a/bzrlib/remote.py 2008-12-12 01:17:04 +0000
+++ b/bzrlib/remote.py 2009-01-16 07:50:48 +0000
@@ -230,6 +230,9 @@
def needs_format_conversion(self, format=None):
"""Upgrading of remote bzrdirs is not supported yet."""
+ if format is None:
+ symbol_versioning.warn(symbol_versioning.deprecated_in((1, 13, 0))
+ % 'needs_format_conversion(format=None)')
return False
def clone(self, url, revision_id=None, force_new_repo=False,
=== modified file 'bzrlib/tests/blackbox/test_upgrade.py'
--- a/bzrlib/tests/blackbox/test_upgrade.py 2009-01-13 05:07:27 +0000
+++ b/bzrlib/tests/blackbox/test_upgrade.py 2009-01-16 02:49:35 +0000
@@ -106,10 +106,8 @@
(out, err) = self.run_bzr(
['upgrade', '--format=metaweave', url])
self.assertEqualDiff("""starting upgrade of %s
-making backup of tree history
-%s.bzr has been backed up to %sbackup.bzr
-if conversion fails, you can move this directory back to .bzr
-if it succeeds, you can remove this directory if you wish
+making backup of %s.bzr
+ to %sbackup.bzr
starting upgrade from format 5 to 6
adding prefixes to weaves
adding prefixes to revision-store
@@ -130,10 +128,8 @@
(out, err) = self.run_bzr(
['upgrade', '--format=knit', url])
self.assertEqualDiff("""starting upgrade of %s
-making backup of tree history
-%s.bzr has been backed up to %sbackup.bzr
-if conversion fails, you can move this directory back to .bzr
-if it succeeds, you can remove this directory if you wish
+making backup of %s.bzr
+ to %sbackup.bzr
starting repository conversion
repository converted
finished
@@ -169,10 +165,8 @@
url = t.base
out, err = self.run_bzr(['upgrade', '--format=knit', url])
self.assertEqualDiff("""starting upgrade of %s
-making backup of tree history
-%s.bzr has been backed up to %sbackup.bzr
-if conversion fails, you can move this directory back to .bzr
-if it succeeds, you can remove this directory if you wish
+making backup of %s.bzr
+ to %sbackup.bzr
starting upgrade from format 6 to metadir
starting repository conversion
repository converted
=== modified file 'bzrlib/tests/bzrdir_implementations/test_bzrdir.py'
--- a/bzrlib/tests/bzrdir_implementations/test_bzrdir.py 2008-12-05 02:42:39 +0000
+++ b/bzrlib/tests/bzrdir_implementations/test_bzrdir.py 2009-01-16 07:50:48 +0000
@@ -1476,7 +1476,8 @@
# available
self.assertTrue(isinstance(dir._format.get_converter(
format=dir._format), bzrdir.Converter))
- dir.needs_format_conversion(None)
+ dir.needs_format_conversion(
+ bzrdir.BzrDirFormat.get_default_format())
def test_backup_copies_existing(self):
tree = self.make_branch_and_tree('test')
=== modified file 'bzrlib/tests/test_bzrdir.py'
--- a/bzrlib/tests/test_bzrdir.py 2009-01-09 05:29:09 +0000
+++ b/bzrlib/tests/test_bzrdir.py 2009-01-16 07:50:48 +0000
@@ -880,15 +880,10 @@
def test_needs_conversion_different_working_tree(self):
# meta1dirs need an conversion if any element is not the default.
- old_format = bzrdir.BzrDirFormat.get_default_format()
- # test with
- new_default = bzrdir.format_registry.make_bzrdir('dirstate')
- bzrdir.BzrDirFormat._set_default_format(new_default)
- try:
- tree = self.make_branch_and_tree('tree', format='knit')
- self.assertTrue(tree.bzrdir.needs_format_conversion())
- finally:
- bzrdir.BzrDirFormat._set_default_format(old_format)
+ new_format = bzrdir.format_registry.make_bzrdir('dirstate')
+ tree = self.make_branch_and_tree('tree', format='knit')
+ self.assertTrue(tree.bzrdir.needs_format_conversion(
+ new_format))
class TestFormat5(TestCaseWithTransport):
@@ -915,16 +910,14 @@
self.assertTrue(dir.can_convert_format())
def test_needs_conversion(self):
- # format 5 dirs need a conversion if they are not the default.
- # and they start of not the default.
- old_format = bzrdir.BzrDirFormat.get_default_format()
- bzrdir.BzrDirFormat._set_default_format(bzrdir.BzrDirFormat5())
- try:
- dir = bzrdir.BzrDirFormat5().initialize(self.get_url())
- self.assertFalse(dir.needs_format_conversion())
- finally:
- bzrdir.BzrDirFormat._set_default_format(old_format)
- self.assertTrue(dir.needs_format_conversion())
+ # format 5 dirs need a conversion if they are not the default,
+ # and they aren't
+ dir = bzrdir.BzrDirFormat5().initialize(self.get_url())
+ # don't need to convert it to itself
+ self.assertFalse(dir.needs_format_conversion(bzrdir.BzrDirFormat5()))
+ # do need to convert it to the current default
+ self.assertTrue(dir.needs_format_conversion(
+ bzrdir.BzrDirFormat.get_default_format()))
class TestFormat6(TestCaseWithTransport):
@@ -952,13 +945,9 @@
def test_needs_conversion(self):
# format 6 dirs need an conversion if they are not the default.
- old_format = bzrdir.BzrDirFormat.get_default_format()
- bzrdir.BzrDirFormat._set_default_format(bzrdir.BzrDirMetaFormat1())
- try:
- dir = bzrdir.BzrDirFormat6().initialize(self.get_url())
- self.assertTrue(dir.needs_format_conversion())
- finally:
- bzrdir.BzrDirFormat._set_default_format(old_format)
+ dir = bzrdir.BzrDirFormat6().initialize(self.get_url())
+ self.assertTrue(dir.needs_format_conversion(
+ bzrdir.BzrDirFormat.get_default_format()))
class NotBzrDir(bzrlib.bzrdir.BzrDir):
=== modified file 'bzrlib/upgrade.py'
--- a/bzrlib/upgrade.py 2008-12-05 01:41:55 +0000
+++ b/bzrlib/upgrade.py 2009-01-16 02:49:35 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2005, 2008 Canonical Ltd
+# Copyright (C) 2005, 2008, 2009 Canonical Ltd
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,10 +16,8 @@
"""bzr upgrade logic."""
-# change upgrade from .bzr to create a '.bzr-new', then do a bait and switch.
-
-
-from bzrlib.bzrdir import ConvertBzrDir4To5, ConvertBzrDir5To6, BzrDir, BzrDirFormat4, BzrDirFormat5, BzrDirFormat
+
+from bzrlib.bzrdir import BzrDir, BzrDirFormat
import bzrlib.errors as errors
from bzrlib.remote import RemoteBzrDir
from bzrlib.transport import get_transport
@@ -29,6 +27,8 @@
class Convert(object):
def __init__(self, url, format):
+ if format is None:
+ format = BzrDirFormat.get_default_format()
self.format = format
self.bzrdir = BzrDir.open_unsupported(url)
if isinstance(self.bzrdir, RemoteBzrDir):
@@ -61,24 +61,14 @@
if not self.bzrdir.can_convert_format():
raise errors.BzrError("cannot upgrade from bzrdir format %s" %
self.bzrdir._format)
- if self.format is None:
- target_format = BzrDirFormat.get_default_format()
- else:
- target_format = self.format
- self.bzrdir.check_conversion_target(target_format)
+ self.bzrdir.check_conversion_target(self.format)
self.pb.note('starting upgrade of %s', self.transport.base)
- self._backup_control_dir()
+ self.bzrdir.backup_bzrdir()
while self.bzrdir.needs_format_conversion(self.format):
converter = self.bzrdir._format.get_converter(self.format)
self.bzrdir = converter.convert(self.bzrdir, self.pb)
self.pb.note("finished")
- def _backup_control_dir(self):
- self.pb.note('making backup of tree history')
- old_path, new_path = self.bzrdir.backup_bzrdir()
- self.pb.note('%s has been backed up to %s', old_path, new_path)
- self.pb.note('if conversion fails, you can move this directory back to .bzr')
- self.pb.note('if it succeeds, you can remove this directory if you wish')
def upgrade(url, format=None):
"""Upgrade to format, or the default bzrdir format if not supplied."""
More information about the bazaar-commits
mailing list