Rev 2196: Split up import_text_parents. in file:///data/jelmer/bzr-svn/mappings/

Jelmer Vernooij jelmer at samba.org
Sat Dec 6 20:39:07 GMT 2008


At file:///data/jelmer/bzr-svn/mappings/

------------------------------------------------------------
revno: 2196
revision-id: jelmer at samba.org-20081206203905-lngnyztbn5k2256o
parent: jelmer at samba.org-20081206202909-4ke5tdsganlwd4rr
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mappings
timestamp: Sat 2008-12-06 21:39:05 +0100
message:
  Split up import_text_parents.
modified:
  mapping.py                     mapping.py-20080128201303-6cp01phc0dmc0kiv-1
  mapping2.py                    mapping.py-20080904055555-lw057kjuadn0r2ma-2
  mapping4.py                    mapping4.py-20080827182338-y4xzpsf43vyiwcir-1
  revmeta.py                     revmeta.py-20080901215045-n8a6arqybs9ez5hl-1
  tests/mapping_implementations/test_base.py test_base.py-20080904055908-3t0g1y0qnmr6aeiq-1
=== modified file 'mapping.py'
--- a/mapping.py	2008-12-06 20:29:09 +0000
+++ b/mapping.py	2008-12-06 20:39:05 +0000
@@ -423,13 +423,19 @@
         """
         raise NotImplementedError(self.export_fileid_map)
 
-    def import_text_parents(self, revprops, fileprops):
+    def import_text_parents_revprops(self, revprops):
         """Obtain a text parent map from properties.
 
         :param revprops: Subversion revision properties.
+        """
+        raise NotImplementedError(self.import_text_parents_revprops)
+
+    def import_text_parents_fileprops(self, fileprops):
+        """Obtain a text parent map from properties.
+
         :param fileprops: File properties.
         """
-        raise NotImplementedError(self.import_text_parents)
+        raise NotImplementedError(self.import_text_parents_fileprops)
 
     def export_text_parents(self, text_parents, revprops, fileprops):
         """Store a text parent map.
@@ -540,12 +546,15 @@
         if metadata is not None:
             parse_revision_metadata(metadata[1], rev)
 
-    def import_text_parents(self, svn_revprops, fileprops):
+    def import_text_parents_fileprops(self, fileprops):
         metadata = fileprops.get(SVN_PROP_BZR_TEXT_PARENTS)
         if metadata is None:
             return {}
         return parse_text_parents_property(metadata[1])
 
+    def import_text_parents_revprops(self, svn_revprops):
+        return {}
+
     def import_text_revisions(self, svn_revprops, fileprops):
         metadata = fileprops.get(SVN_PROP_BZR_TEXT_REVISIONS)
         if metadata is None:
@@ -661,7 +670,10 @@
             return {}
         return parse_fileid_property(svn_revprops[SVN_REVPROP_BZR_FILEIDS])
 
-    def import_text_parents(self, svn_revprops, fileprops):
+    def import_text_parents_fileprops(self, fileprops):
+        return {}
+
+    def import_text_parents_revprops(self, svn_revprops):
         if not svn_revprops.has_key(SVN_REVPROP_BZR_TEXT_PARENTS):
             return {}
         return parse_text_parents_property(svn_revprops[SVN_REVPROP_BZR_TEXT_PARENTS])

=== modified file 'mapping2.py'
--- a/mapping2.py	2008-12-05 14:18:09 +0000
+++ b/mapping2.py	2008-12-06 20:39:05 +0000
@@ -82,10 +82,16 @@
             return ROOT_ID
         return "%s-%s" % (self.revision_id_foreign_to_bzr((uuid, branch, revnum)), escape_svn_path(inv_path.encode("utf-8")))
 
-    def import_fileid_map(self, revprops, fileprops):
-        return {}
-
-    def import_text_parents(self, revprops, fileprops):
+    def import_fileid_map_revprops(self, revprops):
+        return {}
+
+    def import_fileid_map_fileprops(self, fileprops):
+        return {}
+
+    def import_text_parents_fileprops(self, fileprops):
+        return {}
+
+    def import_text_parents_revprops(self, revprops):
         return {}
 
     def import_text_revisions(self, svn_revprops, fileprops):

=== modified file 'mapping4.py'
--- a/mapping4.py	2008-12-06 20:29:09 +0000
+++ b/mapping4.py	2008-12-06 20:39:05 +0000
@@ -107,11 +107,11 @@
         else:
             return self.fileprops.get_revision_id(branch_path, revprops, fileprops)
 
-    def import_text_parents(self, svn_revprops, fileprops):
-        if svn_revprops.has_key(mapping.SVN_REVPROP_BZR_TEXT_PARENTS):
-            return self.revprops.import_text_parents(svn_revprops, fileprops)
-        else:
-            return self.fileprops.import_text_parents(svn_revprops, fileprops)
+    def import_text_parents_fileprops(self, fileprops):
+        return self.fileprops.import_text_parents_fileprops(fileprops)
+
+    def import_text_parents_revprops(self, svn_revprops):
+        return self.revprops.import_text_parents_revprops(svn_revprops)
 
     def import_text_revisions(self, svn_revprops, fileprops):
         if svn_revprops.has_key(mapping.SVN_REVPROP_BZR_TEXT_REVISIONS):

=== modified file 'revmeta.py'
--- a/revmeta.py	2008-12-06 20:29:09 +0000
+++ b/revmeta.py	2008-12-06 20:39:05 +0000
@@ -559,12 +559,17 @@
 
         return rev
 
+    def _import_from_props(self, fileprop_fn, revprop_fn):
+        # FIXME: Magic happens here
+        ret = fileprop_fn(self.get_changed_fileprops())
+        if ret != {}:
+            return ret
+        return revprop_fn(self.get_revprops())
+
     def get_fileid_map(self, mapping):
         """Find the file id override map for this revision."""
-        ret = mapping.import_fileid_map_revprops(self.get_revprops())
-        if ret != {}:
-            return ret
-        return mapping.import_fileid_map_fileprops(self.get_changed_fileprops())
+        return self._import_from_props(mapping.import_fileid_map_fileprops, 
+                                       mapping.import_fileid_map_revprops)
 
     def get_text_revisions(self, mapping):
         """Return text revision override map for this revision."""
@@ -573,8 +578,8 @@
 
     def get_text_parents(self, mapping):
         """Return text revision override map for this revision."""
-        return mapping.import_text_parents(self.get_revprops(), 
-                                           self.get_changed_fileprops())
+        return self._import_from_props(mapping.import_text_parents_fileprops, 
+                                       mapping.import_text_parents_revprops)
 
     def consider_bzr_fileprops(self):
         """See if any bzr file properties should be checked at all.

=== modified file 'tests/mapping_implementations/test_base.py'
--- a/tests/mapping_implementations/test_base.py	2008-12-06 20:29:09 +0000
+++ b/tests/mapping_implementations/test_base.py	2008-12-06 20:39:05 +0000
@@ -60,8 +60,12 @@
         fileprops = {}
         text_parents = {"bla": ["bloe"], "ll": ["12", "bli"]}
         self.mapping.export_text_parents(text_parents, revprops, fileprops)
-        self.assertEquals(text_parents,
-            self.mapping.import_text_parents(revprops, changed_props(fileprops)))
+        if self.mapping.can_use_revprops:
+            self.assertEquals(text_parents,
+                self.mapping.import_text_parents_revprops(revprops))
+            if self.mapping.can_use_fileprops:
+            self.assertEquals(text_parents,
+                self.mapping.import_text_parents_fileprops(changed_props(fileprops)))
 
     def test_text_revisions(self):
         if not self.mapping.roundtripping:




More information about the bazaar-commits mailing list