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