Rev 3056: iter_reverse_revision_history also accesses most of the history. in http://bzr.arbash-meinel.com/branches/bzr/0.93-dev/index_buffer_all

John Arbash Meinel john at arbash-meinel.com
Fri Nov 30 02:58:32 GMT 2007


At http://bzr.arbash-meinel.com/branches/bzr/0.93-dev/index_buffer_all

------------------------------------------------------------
revno: 3056
revision-id:john at arbash-meinel.com-20071130025747-kytq6jplq6ukl21a
parent: john at arbash-meinel.com-20071130021851-6nbyrsse7oiz4k4o
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: index_buffer_all
timestamp: Thu 2007-11-29 20:57:47 -0600
message:
  iter_reverse_revision_history also accesses most of the history.
  This changes 'bzr log' time in half (6s => 3s).
modified:
  bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
-------------- next part --------------
=== modified file 'bzrlib/repofmt/pack_repo.py'
--- a/bzrlib/repofmt/pack_repo.py	2007-11-30 02:18:51 +0000
+++ b/bzrlib/repofmt/pack_repo.py	2007-11-30 02:57:47 +0000
@@ -1656,6 +1656,15 @@
         return super(KnitPackRepository, self).get_revision_graph(
             revision_id=revision_id)
 
+    def iter_reverse_revision_history(self, revision_id):
+        if revision_id in (None, _mod_revision.NULL_REVISION):
+            return
+        self._pack_collection.ensure_loaded()
+        index = self._pack_collection.revision_index.combined_index
+        index.buffer_all()
+        return super(KnitPackRepository, self).iter_reverse_revision_history(
+            revision_id)
+
     def _make_parents_provider(self):
         return self
 



More information about the bazaar-commits mailing list