Rev 2995: Merge up pb bar correctness for reconcile. in http://people.ubuntu.com/~robertc/baz2.0/reconcile

Robert Collins robertc at robertcollins.net
Thu Nov 15 23:13:58 GMT 2007


At http://people.ubuntu.com/~robertc/baz2.0/reconcile

------------------------------------------------------------
revno: 2995
revision-id:robertc at robertcollins.net-20071115231348-0vjmr1e8a1x3rx1p
parent: robertc at robertcollins.net-20071115223817-m5mzq041xuj5xu42
parent: robertc at robertcollins.net-20071115230714-hecwd6q1u68w2j9r
committer: Robert Collins <robertc at robertcollins.net>
branch nick: get_versioned_file_checker
timestamp: Fri 2007-11-16 10:13:48 +1100
message:
  Merge up pb bar correctness for reconcile.
modified:
  bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
    ------------------------------------------------------------
    revno: 2993.1.1
    revision-id:robertc at robertcollins.net-20071115230714-hecwd6q1u68w2j9r
    parent: robertc at robertcollins.net-20071115211844-3npqwsnifwdsh5kr
    committer: Robert Collins <robertc at robertcollins.net>
    branch nick: _generate_text_key_index
    timestamp: Fri 2007-11-16 10:07:14 +1100
    message:
      Handle the progress bar in _generate_text_key_index correctly.
    modified:
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py	2007-11-15 22:38:17 +0000
+++ b/bzrlib/repository.py	2007-11-15 23:13:48 +0000
@@ -1241,12 +1241,21 @@
         # All revisions, to find inventory parents.
         revision_graph = self.get_revision_graph_with_ghosts()
         ancestors = revision_graph.get_ancestors()
+        text_key_references = self.find_text_key_references()
+        pb = ui.ui_factory.nested_progress_bar()
+        try:
+            return self._do_generate_text_key_index(ancestors,
+                text_key_references, pb)
+        finally:
+            pb.finished()
+
+    def _do_generate_text_key_index(self, ancestors, text_key_references, pb):
+        """Helper for _generate_text_key_index to avoid deep nesting."""
         revision_order = tsort.topo_sort(ancestors)
         invalid_keys = set()
         revision_keys = {}
         for revision_id in revision_order:
             revision_keys[revision_id] = set()
-        text_key_references = self.find_text_key_references()
         text_count = len(text_key_references)
         # a cache of the text keys to allow reuse; costs a dict of all the
         # keys, but saves a 2-tuple for every child of a given key.
@@ -1267,7 +1276,6 @@
         # could gauge this by looking at available real memory etc, but this is
         # always a tricky proposition.
         inventory_cache = lru_cache.LRUCache(10)
-        pb = ui.ui_factory.nested_progress_bar()
         batch_size = 10 # should be ~150MB on a 55K path tree
         batch_count = len(revision_order) / batch_size + 1
         processed_texts = 0



More information about the bazaar-commits mailing list