Rev 400: Add progress bar, as this function can take a long time to run. in http://people.samba.org/bzr/jelmer/bzr-svn/bzr.dev

Jelmer Vernooij jelmer at samba.org
Mon Jan 15 04:01:28 GMT 2007


------------------------------------------------------------
revno: 400
revision-id: jelmer at samba.org-20070115040110-rkf44wgfw2k3wzdo
parent: jelmer at samba.org-20070115031521-e4ejwccyzei1kntf
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: main
timestamp: Mon 2007-01-15 05:01:10 +0100
message:
  Add progress bar, as this function can take a long time to run.
modified:
  upgrade.py                     upgrade.py-20070106192108-0rakplee2lzah4gs-1
=== modified file 'upgrade.py'
--- a/upgrade.py	2007-01-15 03:15:21 +0000
+++ b/upgrade.py	2007-01-15 04:01:10 +0000
@@ -54,16 +54,25 @@
                                   revprops=oldrev.properties,
                                   revision_id=newrevid)
 
-    for path, ie in repository.get_revision_inventory(oldrevid).iter_entries():
-        new_ie = ie.copy()
-        if new_ie.revision == oldrevid:
-            new_ie.revision = None
-        versionedfile = repository.weave_store.get_weave_or_empty(new_ie.file_id, 
-                repository.get_transaction())
-        if not versionedfile.has_version(newrevid):
-            builder.record_entry_contents(new_ie, 
-                   map(repository.get_revision_inventory, new_parents), 
-                   path, repository.revision_tree(oldrevid))
+    i = 0
+    inv = repository.get_revision_inventory(oldrevid)
+    total = len(inv)
+    pb = ui_factory.nested_progress_bar()
+    try:
+        for path, ie in inv.iter_entries():
+            pb.update('upgrading revision', i, total)
+            i+=1
+            new_ie = ie.copy()
+            if new_ie.revision == oldrevid:
+                new_ie.revision = None
+            versionedfile = repository.weave_store.get_weave_or_empty(new_ie.file_id, 
+                    repository.get_transaction())
+            if not versionedfile.has_version(newrevid):
+                builder.record_entry_contents(new_ie, 
+                       map(repository.get_revision_inventory, new_parents), 
+                       path, repository.revision_tree(oldrevid))
+    finally:
+        pb.finished()
 
     builder.finish_inventory()
     return builder.commit(oldrev.message)




More information about the bazaar-commits mailing list