Rev 1816: Avoid retrieving path changes when unnecessary. in file:///data/jelmer/bzr-svn/trunk/

Jelmer Vernooij jelmer at samba.org
Fri Sep 5 23:08:27 BST 2008


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

------------------------------------------------------------
revno: 1816
revision-id: jelmer at samba.org-20080905220825-5un2327sps5sl6bi
parent: jelmer at samba.org-20080905212856-ryagmxjamqliyqmk
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Sat 2008-09-06 00:08:25 +0200
message:
  Avoid retrieving path changes when unnecessary.
modified:
  revmeta.py                     revmeta.py-20080901215045-n8a6arqybs9ez5hl-1
=== modified file 'revmeta.py'
--- a/revmeta.py	2008-09-05 21:16:32 +0000
+++ b/revmeta.py	2008-09-05 22:08:25 +0000
@@ -65,6 +65,11 @@
     def __repr__(self):
         return "<RevisionMetadata for revision %d in repository %s>" % (self.revnum, repr(self.uuid))
 
+    def changes_branch_root(self):
+        if self.knows_changed_fileprops():
+            return self.get_changed_fileprops() != {}
+        return self.branch_path in self.get_paths()
+
     def get_paths(self):
         if self._paths is None:
             self._paths = self._log.get_revision_paths(self.revnum)
@@ -99,6 +104,12 @@
 
         return self._revprops
 
+    def knows_changed_fileprops(self):
+        if self._changed_fileprops is None:
+            return False
+        changed_fileprops = self.get_changed_fileprops()
+        return isinstance(changed_fileprops, dict) or changed_fileprops.is_loaded
+
     def knows_fileprops(self):
         fileprops = self.get_fileprops()
         return isinstance(fileprops, dict) or fileprops.is_loaded
@@ -116,7 +127,7 @@
 
     def get_changed_fileprops(self):
         if self._changed_fileprops is None:
-            if self.branch_path in self.get_paths():
+            if self.changes_branch_root():
                 self._changed_fileprops = logwalker.lazy_dict({}, properties.diff, self.get_fileprops(), self.get_previous_fileprops())
             else:
                 self._changed_fileprops = {}
@@ -188,7 +199,7 @@
         return mapping.get_rhs_parents(self.branch_path, self.get_revprops(), self.get_changed_fileprops())
 
     def get_svk_merges(self, mapping):
-        if not self.branch_path in self.get_paths():
+        if not self.changes_branch_root():
             return ()
 
         current = self.get_fileprops().get(SVN_PROP_SVK_MERGE, "")




More information about the bazaar-commits mailing list