Rev 414: Revert the page-size stuff. It messes up navigation. in http://bazaar.launchpad.net/~jameinel/loggerhead/history_db

John Arbash Meinel john at arbash-meinel.com
Wed Apr 14 19:51:12 BST 2010


At http://bazaar.launchpad.net/~jameinel/loggerhead/history_db

------------------------------------------------------------
revno: 414
revision-id: john at arbash-meinel.com-20100414185054-5q694mcl22u4v718
parent: john at arbash-meinel.com-20100414181654-475vne2wfvactsto
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: history_db
timestamp: Wed 2010-04-14 13:50:54 -0500
message:
  Revert the page-size stuff. It messes up navigation.
  And it doesn't seem to be terribly expensive to do the rest right now.
-------------- next part --------------
=== modified file 'loggerhead/controllers/changelog_ui.py'
--- a/loggerhead/controllers/changelog_ui.py	2010-04-14 18:16:54 +0000
+++ b/loggerhead/controllers/changelog_ui.py	2010-04-14 18:50:54 +0000
@@ -50,8 +50,7 @@
 
         try:
             revid, start_revid, revid_list = history.get_view(
-                revid, start_revid, filter_file_id, query,
-                max_revs=pagesize)
+                revid, start_revid, filter_file_id, query)
             util.set_context(kwargs)
 
             if (query is not None) and (len(revid_list) == 0):

=== modified file 'loggerhead/history.py'
--- a/loggerhead/history.py	2010-04-14 18:16:54 +0000
+++ b/loggerhead/history.py	2010-04-14 18:50:54 +0000
@@ -348,12 +348,13 @@
             # TODO: This operation appears at the top of profiling currently
             #       when loading the 'changes' page. Especially unfortunate
             #       given that we only show ~20 revs...
-            history = self._branch.repository.iter_reverse_revision_history(
-                            start_revid)
-            for ctr, rev_id in enumerate(history):
+            if start_revid == self.last_revid:
+                history = reversed(self._branch.revision_history())
+            else:
+                history = self._branch.repository.iter_reverse_revision_history(
+                                start_revid)
+            for rev_id in history:
                 yield rev_id
-                if ctr > 100:
-                    break
             return
         revid_set = set(revid_list)
 
@@ -513,18 +514,12 @@
         if file_id is not None:
             revlist = list(
                 self.get_short_revision_history_by_fileid(file_id, revid))
-            revlist = self.get_revids_from(revlist, revid)
+            revlist = list(self.get_revids_from(revlist, revid))
         else:
-            revlist = self.get_revids_from(None, revid)
+            revlist = list(self.get_revids_from(None, revid))
         return revlist
 
-    def _expand_iterable(self, iterable, count=None):
-        if count is None:
-            return list(iterable)
-        iterator = iter(iterable)
-        return [iterator.next() for i in xrange(count)]
-
-    def get_view(self, revid, start_revid, file_id, query=None, max_revs=None):
+    def get_view(self, revid, start_revid, file_id, query=None):
         """
         use the URL parameters (revid, start_revid, file_id, and query) to
         determine the revision list we're viewing (start_revid, file_id, query)
@@ -552,15 +547,13 @@
             start_revid = self.last_revid
 
         if query is None:
-            revid_list = self._expand_iterable(
-                self.get_file_view(start_revid, file_id), max_revs)
+            revid_list = self.get_file_view(start_revid, file_id)
             if revid is None:
                 revid = start_revid
             if revid not in revid_list:
                 # if the given revid is not in the revlist, use a revlist that
                 # starts at the given revid.
-                revid_list = self._expand_iterable(
-                    self.get_file_view(revid, file_id), max_revs)
+                revid_list = self.get_file_view(revid, file_id)
                 start_revid = revid
             return revid, start_revid, revid_list
 



More information about the bazaar-commits mailing list