Rev 2994: Handle the progress bar in _generate_text_key_index correctly. in http://people.ubuntu.com/~robertc/baz2.0/reconcile
Robert Collins
robertc at robertcollins.net
Thu Nov 15 21:46:50 GMT 2007
At http://people.ubuntu.com/~robertc/baz2.0/reconcile
------------------------------------------------------------
revno: 2994
revision-id:robertc at robertcollins.net-20071115214632-5l5co0c7ptkaz1e7
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 08:46:32 +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 21:18:44 +0000
+++ b/bzrlib/repository.py 2007-11-15 21:46:32 +0000
@@ -1242,11 +1242,21 @@
revision_graph = self.get_revision_graph_with_ghosts()
ancestors = revision_graph.get_ancestors()
revision_order = tsort.topo_sort(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, revision_order,
+ text_key_references, pb)
+ finally:
+ pb.finished()
+
+ def _do_generate_text_key_index(self, ancestors, revision_order,
+ text_key_references, pb):
+ """Worker for _generate_text_key_index to prevent deep nesting."""
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 +1277,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