Rev 5048: (mbp, for parthm) copy to backup.bzr.~N~ before upgrading in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Thu Feb 18 04:04:20 GMT 2010
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 5048 [merge]
revision-id: pqm at pqm.ubuntu.com-20100218040419-l1gkx8dm60czagfq
parent: pqm at pqm.ubuntu.com-20100218033337-ugvgcd1fxq2i9b9h
parent: mbp at sourcefrog.net-20100218023923-nt9prcagtj0j7kvs
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2010-02-18 04:04:19 +0000
message:
(mbp, for parthm) copy to backup.bzr.~N~ before upgrading
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/bzrdir.py bzrdir.py-20060131065624-156dfea39c4387cb
bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
bzrlib/tests/blackbox/test_upgrade.py test_upgrade.py-20060120060132-b41e5ed2f886ad28
bzrlib/tests/test_upgrade.py test_upgrade.py-20051004040251-555fe1d2bae1bc71
=== modified file 'NEWS'
--- a/NEWS 2010-02-18 03:33:37 +0000
+++ b/NEWS 2010-02-18 04:04:19 +0000
@@ -78,6 +78,11 @@
prevents ``bzr status --short`` from crashing when those files are
present. (John Arbash Meinel, #303275)
+* ``bzr upgrade`` now names backup directory as ``backup.bzr.~N~`` instead
+ of ``backup.bzr``. This directory is ignored by bzr commands such as
+ ``add``.
+ (Parth Malwankar, #335033, #300001)
+
API Changes
***********
=== modified file 'bzrlib/bzrdir.py'
--- a/bzrlib/bzrdir.py 2010-02-16 00:53:04 +0000
+++ b/bzrlib/bzrdir.py 2010-02-18 04:04:19 +0000
@@ -580,6 +580,15 @@
:return: Tuple with old path name and new path name
"""
+ def name_gen(base='backup.bzr'):
+ counter = 1
+ name = "%s.~%d~" % (base, counter)
+ while self.root_transport.has(name):
+ counter += 1
+ name = "%s.~%d~" % (base, counter)
+ return name
+
+ backup_dir=name_gen()
pb = ui.ui_factory.nested_progress_bar()
try:
# FIXME: bug 300001 -- the backup fails if the backup directory
@@ -589,9 +598,9 @@
# 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')
+ new_path = self.root_transport.abspath(backup_dir)
ui.ui_factory.note('making backup of %s\n to %s' % (old_path, new_path,))
- self.root_transport.copy_tree('.bzr', 'backup.bzr')
+ self.root_transport.copy_tree('.bzr', backup_dir)
return (old_path, new_path)
finally:
pb.finished()
=== modified file 'bzrlib/tests/blackbox/test_info.py'
--- a/bzrlib/tests/blackbox/test_info.py 2010-02-11 09:27:55 +0000
+++ b/bzrlib/tests/blackbox/test_info.py 2010-02-18 02:39:23 +0000
@@ -212,8 +212,8 @@
0 added
0 removed
0 renamed
- 1 unknown
- 0 ignored
+ 0 unknown
+ 1 ignored
0 versioned subdirectories
Branch history:
@@ -380,8 +380,8 @@
0 added
0 removed
0 renamed
- 1 unknown
- 0 ignored
+ 0 unknown
+ 1 ignored
0 versioned subdirectories
Branch history:
=== modified file 'bzrlib/tests/blackbox/test_upgrade.py'
--- a/bzrlib/tests/blackbox/test_upgrade.py 2010-01-25 17:48:22 +0000
+++ b/bzrlib/tests/blackbox/test_upgrade.py 2010-02-15 11:28:35 +0000
@@ -101,17 +101,18 @@
url = get_transport(self.get_url('format_5_branch')).base
# check --format takes effect
bzrdir.BzrDirFormat._set_default_format(bzrdir.BzrDirFormat5())
+ backup_dir = 'backup.bzr.~1~'
(out, err) = self.run_bzr(
['upgrade', '--format=metaweave', url])
self.assertEqualDiff("""starting upgrade of %s
making backup of %s.bzr
- to %sbackup.bzr
+ to %s%s
starting upgrade from format 5 to 6
adding prefixes to weaves
adding prefixes to revision-store
starting upgrade from format 6 to metadir
finished
-""" % (url, url, url), out)
+""" % (url, url, url, backup_dir), out)
self.assertEqualDiff("", err)
self.assertTrue(isinstance(
bzrdir.BzrDir.open(self.get_url('format_5_branch'))._format,
@@ -124,15 +125,16 @@
url = get_transport(self.get_url('metadir_weave_branch')).base
# check --format takes effect
bzrdir.BzrDirFormat._set_default_format(bzrdir.BzrDirFormat5())
+ backup_dir = 'backup.bzr.~1~'
(out, err) = self.run_bzr(
['upgrade', '--format=knit', url])
self.assertEqualDiff("""starting upgrade of %s
making backup of %s.bzr
- to %sbackup.bzr
+ to %s%s
starting repository conversion
repository converted
finished
-""" % (url, url, url), out)
+""" % (url, url, url, backup_dir), out)
self.assertEqualDiff("", err)
converted_dir = bzrdir.BzrDir.open(self.get_url('metadir_weave_branch'))
self.assertTrue(isinstance(converted_dir._format,
@@ -145,6 +147,33 @@
self.run_bzr('upgrade --format=knit repo')
+ def test_upgrade_with_existing_backup_dir(self):
+ self.make_format_5_branch()
+ transport = get_transport(self.get_url('format_5_branch'))
+ url = transport.base
+ bzrdir.BzrDirFormat._set_default_format(bzrdir.BzrDirFormat5())
+ backup_dir1 = 'backup.bzr.~1~'
+ backup_dir2 = 'backup.bzr.~2~'
+ # explicitly create backup_dir1. bzr should create the .~2~ directory
+ # as backup
+ transport.mkdir(backup_dir1)
+ (out, err) = self.run_bzr(
+ ['upgrade', '--format=metaweave', url])
+ self.assertEqualDiff("""starting upgrade of %s
+making backup of %s.bzr
+ to %s%s
+starting upgrade from format 5 to 6
+adding prefixes to weaves
+adding prefixes to revision-store
+starting upgrade from format 6 to metadir
+finished
+""" % (url, url, url, backup_dir2), out)
+ self.assertEqualDiff("", err)
+ self.assertTrue(isinstance(
+ bzrdir.BzrDir.open(self.get_url('format_5_branch'))._format,
+ bzrdir.BzrDirMetaFormat1))
+ self.assertTrue(transport.has(backup_dir2))
+
class SFTPTests(TestCaseWithSFTPServer):
"""Tests for upgrade over sftp."""
@@ -153,14 +182,15 @@
t = get_transport(self.get_url())
url = t.base
out, err = self.run_bzr(['upgrade', '--format=knit', url])
+ backup_dir = 'backup.bzr.~1~'
self.assertEqualDiff("""starting upgrade of %s
making backup of %s.bzr
- to %sbackup.bzr
+ to %s%s
starting upgrade from format 6 to metadir
starting repository conversion
repository converted
finished
-""" % (url, url, url), out)
+""" % (url, url, url,backup_dir), out)
self.assertEqual('', err)
=== modified file 'bzrlib/tests/test_upgrade.py'
--- a/bzrlib/tests/test_upgrade.py 2010-02-10 17:52:08 +0000
+++ b/bzrlib/tests/test_upgrade.py 2010-02-15 10:46:49 +0000
@@ -79,27 +79,28 @@
finally:
rt.unlock()
# check a backup was made:
+ backup_dir = 'backup.bzr.~1~'
transport = get_transport(b.base)
- transport.stat('backup.bzr')
- transport.stat('backup.bzr/README')
- transport.stat('backup.bzr/branch-format')
- transport.stat('backup.bzr/revision-history')
- transport.stat('backup.bzr/merged-patches')
- transport.stat('backup.bzr/pending-merged-patches')
- transport.stat('backup.bzr/pending-merges')
- transport.stat('backup.bzr/branch-name')
- transport.stat('backup.bzr/branch-lock')
- transport.stat('backup.bzr/inventory')
- transport.stat('backup.bzr/stat-cache')
- transport.stat('backup.bzr/text-store')
- transport.stat('backup.bzr/text-store/foo-20051004035611-1591048e9dc7c2d4.gz')
- transport.stat('backup.bzr/text-store/foo-20051004035756-4081373d897c3453.gz')
- transport.stat('backup.bzr/inventory-store/')
- transport.stat('backup.bzr/inventory-store/mbp at sourcefrog.net-20051004035611-176b16534b086b3c.gz')
- transport.stat('backup.bzr/inventory-store/mbp at sourcefrog.net-20051004035756-235f2b7dcdddd8dd.gz')
- transport.stat('backup.bzr/revision-store/')
- transport.stat('backup.bzr/revision-store/mbp at sourcefrog.net-20051004035611-176b16534b086b3c.gz')
- transport.stat('backup.bzr/revision-store/mbp at sourcefrog.net-20051004035756-235f2b7dcdddd8dd.gz')
+ transport.stat(backup_dir)
+ transport.stat(backup_dir + '/README')
+ transport.stat(backup_dir + '/branch-format')
+ transport.stat(backup_dir + '/revision-history')
+ transport.stat(backup_dir + '/merged-patches')
+ transport.stat(backup_dir + '/pending-merged-patches')
+ transport.stat(backup_dir + '/pending-merges')
+ transport.stat(backup_dir + '/branch-name')
+ transport.stat(backup_dir + '/branch-lock')
+ transport.stat(backup_dir + '/inventory')
+ transport.stat(backup_dir + '/stat-cache')
+ transport.stat(backup_dir + '/text-store')
+ transport.stat(backup_dir + '/text-store/foo-20051004035611-1591048e9dc7c2d4.gz')
+ transport.stat(backup_dir + '/text-store/foo-20051004035756-4081373d897c3453.gz')
+ transport.stat(backup_dir + '/inventory-store/')
+ transport.stat(backup_dir + '/inventory-store/mbp at sourcefrog.net-20051004035611-176b16534b086b3c.gz')
+ transport.stat(backup_dir + '/inventory-store/mbp at sourcefrog.net-20051004035756-235f2b7dcdddd8dd.gz')
+ transport.stat(backup_dir + '/revision-store/')
+ transport.stat(backup_dir + '/revision-store/mbp at sourcefrog.net-20051004035611-176b16534b086b3c.gz')
+ transport.stat(backup_dir + '/revision-store/mbp at sourcefrog.net-20051004035756-235f2b7dcdddd8dd.gz')
def test_upgrade_with_ghosts(self):
"""Upgrade v0.0.4 tree containing ghost references.
@@ -157,7 +158,7 @@
self.assertFalse(transport.has('.bzr/stat-cache'))
# XXX: upgrade fails if a backup.bzr is already present
# -- David Allouche 2006-08-11
- transport.delete_tree('backup.bzr')
+ transport.delete_tree('backup.bzr.~1~')
# At this point, we have a format6 branch without checkout files.
upgrade('.', bzrdir.BzrDirMetaFormat1())
# The upgrade should not have set up a working tree.
More information about the bazaar-commits
mailing list