Rev 2219: Improve abstractions a bit. in file:///data/jelmer/bzr-svn/mappings/

Jelmer Vernooij jelmer at samba.org
Sun Dec 7 18:32:13 GMT 2008


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

------------------------------------------------------------
revno: 2219
revision-id: jelmer at samba.org-20081207183211-yfbndvwnagn3tabq
parent: jelmer at samba.org-20081207180541-evoqr8zzp8kvh4eq
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mappings
timestamp: Sun 2008-12-07 19:32:11 +0100
message:
  Improve abstractions a bit.
modified:
  revmeta.py                     revmeta.py-20080901215045-n8a6arqybs9ez5hl-1
=== modified file 'revmeta.py'
--- a/revmeta.py	2008-12-07 18:05:41 +0000
+++ b/revmeta.py	2008-12-07 18:32:11 +0000
@@ -362,7 +362,9 @@
         return self._import_from_props(None,
                 find_mapping_fileprops,
                 find_mapping_revprops,
-                None, self.consider_bzr_fileprops)
+                None, self.consider_bzr_fileprops,
+                revprops_acceptable=lambda x: True, 
+                revprops_sufficient=lambda x: True)
 
     def _get_stored_lhs_parent_revid(self, mapping):
         return self._import_from_props(mapping, 
@@ -570,24 +572,33 @@
         self._import_from_props(mapping, 
             lambda changed_fileprops: mapping.import_revision_fileprops(changed_fileprops, rev),
             lambda revprops: mapping.import_revision_revprops(revprops, rev),
-            False, self.consider_bzr_fileprops, check_branch_root=False)
+            False, self.consider_bzr_fileprops, 
+            lambda x: True)
 
         rev.svn_meta = self
 
         return rev
 
     def _import_from_props(self, mapping, fileprop_fn, revprop_fn, default,
-                           consider_fileprops_fn, check_branch_root=True):
+                           consider_fileprops_fn, 
+                           revprops_acceptable=None,
+                           revprops_sufficient=None):
         can_use_revprops = (mapping is None or mapping.can_use_revprops)
         can_use_fileprops = (mapping is None or mapping.can_use_fileprops)
+        if revprops_acceptable is None:
+            def revprops_acceptable(revprops):
+                return (mapping.get_branch_root(revprops) == self.branch_path)
+        if revprops_sufficient is None:
+            def revprops_sufficient(revprops):
+                return mapping.revprops_complete(revprops)
 
         # Check revprops if self.knows_revprops() and can_use_revprops
         if can_use_revprops and self.knows_revprops():
             revprops = self.get_revprops()
-            if (mapping is None or 
-                (not check_branch_root and mapping.revprops_complete(revprops)) or
-                mapping.get_branch_root(revprops) == self.branch_path):
-                return revprop_fn(revprops)
+            if revprops_acceptable(revprops):
+                ret = revprop_fn(revprops)
+                if revprops_sufficient(revprops):
+                    return ret
             can_use_revprops = False
 
         # Check changed_fileprops if self.knows_changed_fileprops() and 
@@ -601,12 +612,14 @@
         # Check revprops if the last descendant has bzr:check-revprops set;
         #   if it has and the revnum there is < self.revnum
         if can_use_revprops and self.consider_bzr_revprops():
-            warn_slow_revprops()
+            if self.revnum > 0:
+                # revision 0 is not included by svn_ra_get_log()
+                warn_slow_revprops()
             revprops = self.get_revprops()
-            if (mapping is None or 
-                (not check_branch_root and mapping.revprops_complete(revprops)) or 
-                mapping.get_branch_root(revprops) == self.branch_path):
-                return revprop_fn(revprops)
+            if revprops_acceptable(revprops):
+                ret = revprop_fn(revprops)
+                if revprops_sufficient(revprops):
+                    return ret
 
         # Check whether we should consider file properties at all 
         # for this revision, if we should -> check fileprops




More information about the bazaar-commits mailing list