Rev 2225: Remove is_bzr_revision. in file:///data/jelmer/bzr-svn/mappings/

Jelmer Vernooij jelmer at samba.org
Sun Dec 7 22:33:14 GMT 2008


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

------------------------------------------------------------
revno: 2225
revision-id: jelmer at samba.org-20081207223310-admsgx9eri6gz67e
parent: jelmer at samba.org-20081207215049-hwamku3rxsrnqu5c
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: mappings
timestamp: Sun 2008-12-07 23:33:10 +0100
message:
  Remove is_bzr_revision.
modified:
  TODO                           todo-20060729211917-2kpobww0zyvvo0j2-1
  repository.py                  repository.py-20060306123302-1f8c5069b3fe0265
  revmeta.py                     revmeta.py-20080901215045-n8a6arqybs9ez5hl-1
=== modified file 'TODO'
--- a/TODO	2008-12-07 06:03:22 +0000
+++ b/TODO	2008-12-07 22:33:10 +0000
@@ -6,7 +6,6 @@
 - automatically disable cache in some situations, allow partial cache?
 - in-memory caching of revid mapping (LRUCache ?)
 - inventory problem that shows up in bigboard, evolution
-- remove RevisionMetadata.is_bzr_revision()
 
 more tests:
 - Run all tests against repository with revprop changing allowed and without

=== modified file 'repository.py'
--- a/repository.py	2008-12-07 21:50:49 +0000
+++ b/repository.py	2008-12-07 22:33:10 +0000
@@ -149,6 +149,8 @@
         use_cache = self.get_config().get_use_cache()
 
         if use_cache is None:
+            # TODO: Don't enable log cache in some situations, e.g. 
+            # for large repositories ?
             use_cache = set(["fileids", "revids", "log"])
 
         if use_cache:
@@ -161,16 +163,20 @@
             self.cachedb = cachedbs()[cache_file]
 
         if "log" in use_cache:
-            self._log = logwalker.CachingLogWalker(self._log, cache_db=self.cachedb)
+            self._log = logwalker.CachingLogWalker(self._log,
+                cache_db=self.cachedb)
 
         if "fileids" in use_cache:
             cachedir_transport = get_transport(cache_dir)
-            self.fileid_map = CachingFileIdMap(cachedir_transport, self.fileid_map)
+            self.fileid_map = CachingFileIdMap(cachedir_transport, 
+                self.fileid_map)
         if "revids" in use_cache:
             self.revmap = CachingRevidMap(self.revmap, self.cachedb)
-            self._real_parents_provider = DiskCachingParentsProvider(self._real_parents_provider, cachedir_transport)
+            self._real_parents_provider = DiskCachingParentsProvider(
+                self._real_parents_provider, cachedir_transport)
 
-        self._parents_provider = graph.CachingParentsProvider(self._real_parents_provider)
+        self._parents_provider = graph.CachingParentsProvider(
+            self._real_parents_provider)
         self.texts = SvnTexts(self)
         self.revisions = VirtualRevisionTexts(self)
         self.inventories = VirtualInventoryTexts(self)

=== modified file 'revmeta.py'
--- a/revmeta.py	2008-12-07 21:28:16 +0000
+++ b/revmeta.py	2008-12-07 22:33:10 +0000
@@ -441,59 +441,6 @@
                 mapping.is_bzr_revision_hidden_revprops,
                 False, consider_fileprops_fn=self.consider_bzr_hidden_fileprops)
 
-    def is_bzr_revision(self):
-        """Determine if this is a bzr revision.
-
-        Optimized to use as few network requests as possible.
-        """
-        if self._is_bzr_revision is not None:
-            return self._is_bzr_revision
-        order = []
-        # If the server already sent us all revprops, look at those first
-        if self.knows_revprops():
-            order.append(lambda: is_bzr_revision_revprops(self.get_revprops()))
-        if self.consider_bzr_fileprops():
-            order.append(lambda: is_bzr_revision_fileprops(self.get_changed_fileprops()))
-        # Only look for revprops if they could've been committed
-        if (self.check_revprops and not self.knows_revprops()):
-            order.append(lambda: is_bzr_revision_revprops(self.get_revprops()))
-        for fn in order:
-            ret = fn()
-            if ret is not None:
-                self._is_bzr_revision = ret
-                return ret
-        return None
-
-    def get_bzr_merges(self, mapping):
-        """Check what Bazaar revisions were merged in this revision."""
-        return self._import_from_props(mapping,
-            mapping.get_rhs_parents_fileprops,
-            mapping.get_rhs_parents_revprops, (), self.consider_bzr_fileprops)
-
-    def get_svk_merges(self, mapping):
-        """Check what SVK revisions were merged in this revision."""
-        if not self.consider_svk_fileprops():
-            return ()
-
-        if not self.changes_branch_root():
-            return ()
-        
-        changed_fileprops = self.get_changed_fileprops()
-        previous, current = changed_fileprops.get(SVN_PROP_SVK_MERGE, ("", ""))
-        if current == "":
-            return ()
-
-        ret = []
-        for feature in svk_features_merged_since(current, previous or ""):
-            # We assume svk:merge is only relevant on non-bzr-svn revisions. 
-            # If this is a bzr-svn revision, the bzr-svn properties 
-            # would be parsed instead.
-            revid = svk_feature_to_revision_id(feature, mapping)
-            if revid is not None:
-                ret.append(revid)
-
-        return tuple(ret)
-
     def get_distance_to_null(self, mapping):
         """Return the number of revisions between this one and the left hand 
         side NULL_REVISION, if known.
@@ -533,10 +480,32 @@
         """Determine the right hand side parents for this revision.
 
         """
-        if self.is_bzr_revision():
-            return self.get_bzr_merges(mapping)
-
-        return self.get_svk_merges(mapping)
+        def consider_fileprops():
+            return (self.consider_bzr_fileprops() or 
+                    self.consider_svk_fileprops())
+
+        def get_svk_merges(changed_fileprops):
+            """Check what SVK revisions were merged in this revision."""
+            previous, current = changed_fileprops.get(SVN_PROP_SVK_MERGE, ("", ""))
+            ret = []
+            for feature in svk_features_merged_since(current, previous or ""):
+                # We assume svk:merge is only relevant on non-bzr-svn revisions. 
+                # If this is a bzr-svn revision, the bzr-svn properties 
+                # would be parsed instead.
+                revid = svk_feature_to_revision_id(feature, mapping)
+                if revid is not None:
+                    ret.append(revid)
+
+            return tuple(ret)
+
+        def get_fileprops(fileprops):
+            return (mapping.get_rhs_parents_fileprops(fileprops) or 
+                    get_svk_merges(fileprops))
+
+        return self._import_from_props(mapping,
+            get_fileprops,
+            mapping.get_rhs_parents_revprops, (), 
+            consider_fileprops)
 
     def get_parent_ids(self, mapping):
         """Return the parent ids for this revision. """
@@ -692,7 +661,8 @@
 
         This will try to avoid extra network traffic if at all possible.
         """
-        return (self.estimate_svk_fileprop_ancestors() > 0)
+        return (self.changes_branch_root() and 
+                self.estimate_svk_fileprop_ancestors() > 0)
 
     def get_roundtrip_ancestor_revids(self):
         """Return the number of fileproperty roundtrip ancestors.




More information about the bazaar-commits mailing list