Adapted BugDir.duplicate_bugdir() to use revision-dependend Storage.children()
authorW. Trevor King <wking@drexel.edu>
Tue, 29 Dec 2009 09:43:42 +0000 (04:43 -0500)
committerW. Trevor King <wking@drexel.edu>
Tue, 29 Dec 2009 09:43:42 +0000 (04:43 -0500)
libbe/bugdir.py

index 50dc8ba7f6f2e2368d0e212210bb1764f9a07987..cec1e3b5d8cb0d9ffaacb38106ca1dc6008ece24 100644 (file)
@@ -300,17 +300,23 @@ class BugDir (list, settings_object.SavedSettingsObject):
             raise libbe.storage.InvalidStorageVersion(storage_version)
         s = copy.deepcopy(self.storage)
         s.writeable = False
-        class RevisionedStorageGet (object):
+        class RevisionedStorage (object):
             def __init__(self, storage, default_revision):
                 self.s = storage
                 self.sget = self.s.get
+                self.schildren = self.s.children
                 self.r = default_revision
             def get(self, *args, **kwargs):
                 if not 'revision' in kwargs or kwargs['revision'] == None:
                     kwargs['revision'] = self.r
                 return self.sget(*args, **kwargs)
-        rsg = RevisionedStorageGet(s, revision)
-        s.get = rsg.get
+            def children(self, *args, **kwargs):
+                if not 'revision' in kwargs or kwargs['revision'] == None:
+                    kwargs['revision'] = self.r
+                return self.schildren(*args, **kwargs)
+        rs = RevisionedStorage(s, revision)
+        s.get = rs.get
+        s.children = rs.children
         dbd = BugDir(s, from_storage=True)
 #        dbd = copy.copy(self)
 #        dbd.storage = copy.copy(self.storage)