Rev 2198: Split up get_rhs_parents(). in file:///data/jelmer/bzr-svn/mappings/

Jelmer Vernooij jelmer at samba.org
Sat Dec 6 21:04:28 GMT 2008


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

------------------------------------------------------------
revno: 2198
revision-id: jelmer at samba.org-20081206210426-4sq69e9f6578hiov
parent: jelmer at samba.org-20081206204753-v205trl203xqzk69
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mappings
timestamp: Sat 2008-12-06 22:04:26 +0100
message:
  Split up get_rhs_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:47:53 +0000
+++ b/mapping.py	2008-12-06 21:04:26 +0000
@@ -390,11 +390,17 @@
         """
         return None
 
-    def get_rhs_parents(self, branch_path, revprops, fileprops):
-        """Obtain the right-hand side parents for a revision.
-
-        """
-        raise NotImplementedError(self.get_rhs_parents)
+    def get_rhs_parents_fileprops(self, fileprops):
+        """Obtain the right-hand side parents for a revision.
+
+        """
+        raise NotImplementedError(self.get_rhs_parents_fileprops)
+
+    def get_rhs_parents_revprops(self, revprops):
+        """Obtain the right-hand side parents for a revision.
+
+        """
+        raise NotImplementedError(self.get_rhs_parents_revprops)
 
     def get_rhs_ancestors(self, branch_path, revprops, fileprops):
         """Obtain the right-hand side ancestors for a revision.
@@ -579,7 +585,7 @@
         elif SVN_PROP_BZR_TEXT_REVISIONS in fileprops:
             fileprops[SVN_PROP_BZR_TEXT_REVISIONS] = ""
 
-    def get_rhs_parents(self, branch_path, revprops, fileprops):
+    def get_rhs_parents_fileprops(self, fileprops):
         bzr_merges = fileprops.get(SVN_PROP_BZR_ANCESTRY+self.name, None)
         if bzr_merges is not None:
             try:
@@ -594,6 +600,9 @@
 
         return ()
 
+    def get_rhs_parents_revprops(self, revprops):
+        return ()
+
     def get_rhs_ancestors(self, branch_path, revprops, fileprops):
         ancestry = []
         for l in fileprops.get(SVN_PROP_BZR_ANCESTRY+self.name, (None, ""))[1].splitlines():
@@ -705,11 +714,12 @@
             return None
         return svn_revprops.get(SVN_REVPROP_BZR_BASE_REVISION)
 
-    def get_rhs_parents(self, branch_path, svn_revprops, fileprops):
-        if self.get_branch_root(svn_revprops) != branch_path:
-            return ()
+    def get_rhs_parents_revprops(self, svn_revprops):
         return tuple(svn_revprops.get(SVN_REVPROP_BZR_MERGE, "").splitlines())
 
+    def get_rhs_parents_fileprops(self, fileprops):
+        return ()
+
     def get_branch_root(self, revprops):
         return revprops.get(SVN_REVPROP_BZR_ROOT)
 

=== modified file 'mapping2.py'
--- a/mapping2.py	2008-12-06 20:47:53 +0000
+++ b/mapping2.py	2008-12-06 21:04:26 +0000
@@ -100,7 +100,10 @@
     def import_text_revisions_fileprops(self, fileprops):
         return {}
 
-    def get_rhs_parents(self, branch_path, revprops, fileprops):
+    def get_rhs_parents_revprops(self, revprops):
+        return ()
+
+    def get_rhs_parent_fileprops(self, fileprops):
         value = fileprops.get(SVN_PROP_BZR_MERGE, "")
         if value == "":
             return ()

=== modified file 'mapping4.py'
--- a/mapping4.py	2008-12-06 20:47:53 +0000
+++ b/mapping4.py	2008-12-06 21:04:26 +0000
@@ -95,11 +95,11 @@
     def get_lhs_parent(self, branch_path, svn_revprops, fileprops):
         return self.revprops.get_lhs_parent(branch_path, svn_revprops, fileprops)
 
-    def get_rhs_parents(self, branch_path, svn_revprops, fileprops):
-        if svn_revprops.has_key(mapping.SVN_REVPROP_BZR_MAPPING_VERSION):
-            return self.revprops.get_rhs_parents(branch_path, svn_revprops, fileprops)
-        else:
-            return self.fileprops.get_rhs_parents(branch_path, svn_revprops, fileprops)
+    def get_rhs_parents_revprops(self, svn_revprops):
+        return self.revprops.get_rhs_parents_revprops(svn_revprops)
+    
+    def get_rhs_parent_fileprops(self, fileprops):
+        return self.fileprops.get_rhs_parents_fileprops(fileprops)
 
     def get_revision_id(self, branch_path, revprops, fileprops):
         if revprops.has_key(mapping.SVN_REVPROP_BZR_MAPPING_VERSION):
@@ -114,10 +114,10 @@
         return self.revprops.import_text_parents_revprops(svn_revprops)
 
     def import_text_revisions_revprops(self, svn_revprops):
-        return self.revprops.import_text_revisions(svn_revprops)
+        return self.revprops.import_text_revisions_revprops(svn_revprops)
 
     def import_text_revisions_fileprops(self, fileprops):
-        return self.fileprops.import_text_revisions(fileprops)
+        return self.fileprops.import_text_revisions_fileprops(fileprops)
 
     def import_fileid_map_fileprops(self, fileprops):
         return self.fileprops.import_fileid_map_fileprops(fileprops)

=== modified file 'revmeta.py'
--- a/revmeta.py	2008-12-06 20:47:53 +0000
+++ b/revmeta.py	2008-12-06 21:04:26 +0000
@@ -451,8 +451,9 @@
 
     def get_bzr_merges(self, mapping):
         """Check what Bazaar revisions were merged in this revision."""
-        return mapping.get_rhs_parents(self.branch_path, self.get_revprops(), 
-                                       self.get_changed_fileprops())
+        return self._import_from_props(mapping,
+            mapping.get_rhs_parents_fileprops,
+            mapping.get_rhs_parent_revprops, ())
 
     def get_svk_merges(self, mapping):
         """Check what SVK revisions were merged in this revision."""
@@ -559,27 +560,32 @@
 
         return rev
 
-    def _import_from_props(self, fileprop_fn, revprop_fn):
+    def _import_from_props(self, mapping, fileprop_fn, revprop_fn, default):
         # FIXME: Magic happens here
         ret = fileprop_fn(self.get_changed_fileprops())
-        if ret != {}:
+        if ret == default:
             return ret
-        return revprop_fn(self.get_revprops())
+        if mapping.get_branch_root(self.get_revprops()) == self.branch_path:
+            return revprop_fn(self.get_revprops())
+        return default
 
     def get_fileid_map(self, mapping):
         """Find the file id override map for this revision."""
-        return self._import_from_props(mapping.import_fileid_map_fileprops, 
-                                       mapping.import_fileid_map_revprops)
+        return self._import_from_props(mapping, 
+            mapping.import_fileid_map_fileprops, 
+            mapping.import_fileid_map_revprops, {})
 
     def get_text_revisions(self, mapping):
         """Return text revision override map for this revision."""
-        return self._import_from_props(mapping.import_text_revisions_fileprops,
-                                       mapping.import_text_revisions_revprops)
+        return self._import_from_props(mapping,
+            mapping.import_text_revisions_fileprops,
+            mapping.import_text_revisions_revprops, {})
 
     def get_text_parents(self, mapping):
         """Return text revision override map for this revision."""
-        return self._import_from_props(mapping.import_text_parents_fileprops, 
-                                       mapping.import_text_parents_revprops)
+        return self._import_from_props(mapping,
+            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:47:53 +0000
+++ b/tests/mapping_implementations/test_base.py	2008-12-06 21:04:26 +0000
@@ -63,7 +63,7 @@
         if self.mapping.can_use_revprops:
             self.assertEquals(text_parents,
                 self.mapping.import_text_parents_revprops(revprops))
-            if self.mapping.can_use_fileprops:
+        if self.mapping.can_use_fileprops:
             self.assertEquals(text_parents,
                 self.mapping.import_text_parents_fileprops(changed_props(fileprops)))
 




More information about the bazaar-commits mailing list