Rev 4232: (andrew) Don't use get_revision_xml when writing a bundle, in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Wed Apr 1 16:14:42 BST 2009


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

------------------------------------------------------------
revno: 4232
revision-id: pqm at pqm.ubuntu.com-20090401151438-hqulqoazddtacbls
parent: pqm at pqm.ubuntu.com-20090401121940-3oygnqkdl889mo02
parent: andrew.bennetts at canonical.com-20090326005946-wyn48x31d5tsloi9
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2009-04-01 16:14:38 +0100
message:
  (andrew) Don't use get_revision_xml when writing a bundle,
  	instead get all the revisions together.
modified:
  bzrlib/bundle/serializer/v4.py v10.py-20070611062757-5ggj7k18s9dej0fr-1
  bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
    ------------------------------------------------------------
    revno: 4202.3.2
    revision-id: andrew.bennetts at canonical.com-20090326005946-wyn48x31d5tsloi9
    parent: andrew.bennetts at canonical.com-20090325231511-7bp035hjp2wd1maa
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: bzr-send-tweak
    timestamp: Thu 2009-03-26 11:59:46 +1100
    message:
      Remove unused cStringIO import.
    modified:
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
    ------------------------------------------------------------
    revno: 4202.3.1
    revision-id: andrew.bennetts at canonical.com-20090325231511-7bp035hjp2wd1maa
    parent: pqm at pqm.ubuntu.com-20090325042012-23a6pm0mraw7g2kg
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: bzr-send-tweak
    timestamp: Thu 2009-03-26 10:15:11 +1100
    message:
      Don't use get_revision_xml when writing a bundle, instead get all the revisions together.
    modified:
      bzrlib/bundle/serializer/v4.py v10.py-20070611062757-5ggj7k18s9dej0fr-1
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
=== modified file 'bzrlib/bundle/serializer/v4.py'
--- a/bzrlib/bundle/serializer/v4.py	2009-03-23 14:59:43 +0000
+++ b/bzrlib/bundle/serializer/v4.py	2009-03-25 23:15:11 +0000
@@ -322,9 +322,12 @@
             revision_order.append(self.target)
         self._add_mp_records_keys('inventory', inv_vf, [(revid,) for revid in revision_order])
         parent_map = self.repository.get_parent_map(revision_order)
-        for revision_id in revision_order:
+        revision_to_str = self.repository._serializer.write_revision_to_string
+        revisions = self.repository.get_revisions(revision_order)
+        for revision in revisions:
+            revision_id = revision.revision_id
             parents = parent_map.get(revision_id, None)
-            revision_text = self.repository.get_revision_xml(revision_id)
+            revision_text = revision_to_str(revision)
             self.bundle.add_fulltext_record(revision_text, parents,
                                        'revision', revision_id)
             try:

=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py	2009-03-30 04:59:50 +0000
+++ b/bzrlib/repository.py	2009-04-01 15:14:38 +0000
@@ -16,7 +16,6 @@
 
 from bzrlib.lazy_import import lazy_import
 lazy_import(globals(), """
-import cStringIO
 import re
 import time
 
@@ -1636,15 +1635,13 @@
 
     @needs_read_lock
     def get_revision_xml(self, revision_id):
-        # TODO: jam 20070210 This shouldn't be necessary since get_revision
-        #       would have already do it.
-        # TODO: jam 20070210 Just use _serializer.write_revision_to_string()
-        rev = self.get_revision(revision_id)
-        rev_tmp = cStringIO.StringIO()
-        # the current serializer..
-        self._serializer.write_revision(rev, rev_tmp)
-        rev_tmp.seek(0)
-        return rev_tmp.getvalue()
+        """Return the XML representation of a revision.
+
+        :param revision_id: Revision for which to return the XML.
+        :return: XML string
+        """
+        return self._serializer.write_revision_to_string(
+            self.get_revision(revision_id))
 
     def get_deltas_for_revisions(self, revisions, specific_fileids=None):
         """Produce a generator of revision deltas.




More information about the bazaar-commits mailing list