Rev 4391: (igc) make tags faster when on the mainline in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Fri May 29 11:34:37 BST 2009


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 4391
revision-id: pqm at pqm.ubuntu.com-20090529103434-04tivhvlg6aohfkj
parent: pqm at pqm.ubuntu.com-20090528185655-uip7we14796b5c8j
parent: ian.clatworthy at canonical.com-20090529094200-oaklidnkjl4qgyh5
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Fri 2009-05-29 11:34:34 +0100
message:
  (igc) make tags faster when on the mainline
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
    ------------------------------------------------------------
    revno: 4390.2.1
    revision-id: ian.clatworthy at canonical.com-20090529094200-oaklidnkjl4qgyh5
    parent: pqm at pqm.ubuntu.com-20090528185655-uip7we14796b5c8j
    parent: ian.clatworthy at canonical.com-20090529032625-znolk6xrgnzlcm6m
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: integration
    timestamp: Fri 2009-05-29 19:42:00 +1000
    message:
      (igc) make tags faster when on the mainline
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
    ------------------------------------------------------------
    revno: 4390.1.1
    revision-id: ian.clatworthy at canonical.com-20090529032625-znolk6xrgnzlcm6m
    parent: pqm at pqm.ubuntu.com-20090528185655-uip7we14796b5c8j
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: faster-tags
    timestamp: Fri 2009-05-29 13:26:25 +1000
    message:
      avoid full revno map generation in tags command
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
=== modified file 'NEWS'
--- a/NEWS	2009-05-28 18:56:55 +0000
+++ b/NEWS	2009-05-29 09:42:00 +0000
@@ -18,12 +18,17 @@
 Improvements
 ************
 
-* ``bzr branch`` in a shared repository is now faster for
-  development6-rich-root format. (Ian Clatworthy)
-
-* ``bzr branch --notree`` is now faster. (Ian Clatworthy)
-
-* ``bzr diff`` is now faster on large trees. (Ian Clatworthy)
+* Numerous operations are now faster for huge projects, i.e. those
+  with a large number of files and/or a large number of revisions,
+  particularly when the latest development format is used. These
+  operations (and improvements on OpenOffice.org) include:
+
+  * branch in a shared repository (2X faster)
+  * branch --no-tree (100X faster)
+  * diff (2X faster)
+  * tags (70X faster)
+
+  (Ian Clatworthy)
 
 Bug Fixes
 *********

=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2009-05-28 18:06:43 +0000
+++ b/bzrlib/builtins.py	2009-05-29 03:26:25 +0000
@@ -5053,9 +5053,16 @@
             tags.sort(key=lambda x: timestamps[x[1]])
         if not show_ids:
             # [ (tag, revid), ... ] -> [ (tag, dotted_revno), ... ]
-            revno_map = branch.get_revision_id_to_revno_map()
-            tags = [ (tag, '.'.join(map(str, revno_map.get(revid, ('?',)))))
-                        for tag, revid in tags ]
+            for index, (tag, revid) in enumerate(tags):
+                try:
+                    revno = branch.revision_id_to_dotted_revno(revid)
+                    if isinstance(revno, tuple):
+                        revno = '.'.join(map(str, revno))
+                except errors.NoSuchRevision:
+                    # Bad tag data/merges can lead to tagged revisions
+                    # which are not in this branch. Fail gracefully ...
+                    revno = '?'
+                tags[index] = (tag, revno)
         for tag, revspec in tags:
             self.outf.write('%-20s %s\n' % (tag, revspec))
 




More information about the bazaar-commits mailing list