Rev 1814: Save one cache lookup. in file:///data/jelmer/bzr-svn/trunk/

Jelmer Vernooij jelmer at samba.org
Fri Sep 5 22:16:33 BST 2008


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

------------------------------------------------------------
revno: 1814
revision-id: jelmer at samba.org-20080905211632-khyk24f6201cz5sx
parent: jelmer at samba.org-20080905211420-gjbkm40v1c14c454
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Fri 2008-09-05 23:16:32 +0200
message:
  Save one cache lookup.
modified:
  revmeta.py                     revmeta.py-20080901215045-n8a6arqybs9ez5hl-1
=== modified file 'revmeta.py'
--- a/revmeta.py	2008-09-05 21:14:20 +0000
+++ b/revmeta.py	2008-09-05 21:16:32 +0000
@@ -260,18 +260,21 @@
         super(CachingRevisionMetadata, self).__init__(repository, *args, **kwargs)
         self._parents_cache = getattr(self.repository._real_parents_provider, "_cache", None)
         self._revid_cache = self.repository.revmap.cache
+        self._revid = None
 
     def get_revision_id(self, mapping):
+        if self._revid is not None:
+            return self._revid
         # Look in the cache to see if it already has a revision id
-        revid = self._revid_cache.lookup_branch_revnum(self.revnum, self.branch_path, mapping.name)
-        if revid is not None:
-            return revid
-
-        revid = super(CachingRevisionMetadata, self).get_revision_id(mapping)
-
-        self._revid_cache.insert_revid(revid, self.branch_path, self.revnum, self.revnum, mapping.name)
+        self._revid = self._revid_cache.lookup_branch_revnum(self.revnum, self.branch_path, mapping.name)
+        if self._revid is not None:
+            return self._revid
+
+        self._revid = super(CachingRevisionMetadata, self).get_revision_id(mapping)
+
+        self._revid_cache.insert_revid(self._revid, self.branch_path, self.revnum, self.revnum, mapping.name)
         self._revid_cache.commit_conditionally()
-        return revid
+        return self._revid
 
     def get_parent_ids(self, mapping):
         myrevid = self.get_revision_id(mapping)




More information about the bazaar-commits mailing list