Rev 4306: Prevent aliasing issues with BzrDirMetaFormat1 by making a new format object in _open. in http://people.ubuntu.com/~robertc/baz2.0/pending/push.roundtrips

Robert Collins robertc at robertcollins.net
Mon Apr 27 06:56:29 BST 2009


At http://people.ubuntu.com/~robertc/baz2.0/pending/push.roundtrips

------------------------------------------------------------
revno: 4306
revision-id: robertc at robertcollins.net-20090427055616-uhoqgnr8d220u3lv
parent: robertc at robertcollins.net-20090427034755-hzs5tk304glypj9j
committer: Robert Collins <robertc at robertcollins.net>
branch nick: push.roundtrips
timestamp: Mon 2009-04-27 15:56:16 +1000
message:
  Prevent aliasing issues with BzrDirMetaFormat1 by making a new format object in _open.
=== modified file 'bzrlib/bzrdir.py'
--- a/bzrlib/bzrdir.py	2009-04-27 03:47:55 +0000
+++ b/bzrlib/bzrdir.py	2009-04-27 05:56:16 +0000
@@ -2396,7 +2396,12 @@
 
     def _open(self, transport):
         """See BzrDirFormat._open."""
-        return BzrDirMeta1(transport, self)
+        # Create a new format instance because otherwise initialisation of new
+        # metadirs share the global default format object leading to alias
+        # problems.
+        format = BzrDirMetaFormat1()
+        self._supply_sub_formats_to(format)
+        return BzrDirMeta1(transport, format)
 
     def __return_repository_format(self):
         """Circular import protection."""




More information about the bazaar-commits mailing list