Rev 5042: (Jelmer) Remove Repository.get_revision_xml(). in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Wed Feb 17 15:20:42 GMT 2010
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 5042 [merge]
revision-id: pqm at pqm.ubuntu.com-20100217152039-2isgqaajrhd8deul
parent: pqm at pqm.ubuntu.com-20100217144053-wdi9l2l0uc88jw3m
parent: jelmer at samba.org-20100215202334-fbhg2hk7yj9e3281
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2010-02-17 15:20:39 +0000
message:
(Jelmer) Remove Repository.get_revision_xml().
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/foreign.py foreign.py-20081112170002-olsxmandkk8qyfuq-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/tests/blackbox/test_cat_revision.py test_cat_revision.py-20070410204634-fq8mnld5l5aza9e2-1
=== modified file 'NEWS'
--- a/NEWS 2010-02-17 05:12:01 +0000
+++ b/NEWS 2010-02-17 15:20:39 +0000
@@ -20,6 +20,8 @@
* ``Repository.get_inventory_sha1()`` has been removed. (Jelmer Vernooij)
+* ``Repository.get_revision_xml()`` has been removed. (Jelmer Vernooij)
+
* All test servers have been moved out of the bzrlib.transport hierarchy to
bzrlib.tests.test_server *except* for MemoryServer, ChrootServer and
PathFilteringServer. ``bzrlib`` users may encounter test failures that can
=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py 2010-02-12 04:33:05 +0000
+++ b/bzrlib/builtins.py 2010-02-15 20:23:34 +0000
@@ -340,6 +340,14 @@
# cat-revision is more for frontends so should be exact
encoding = 'strict'
+ def print_revision(self, revisions, revid):
+ stream = revisions.get_record_stream([(revid,)], 'unordered', True)
+ record = stream.next()
+ if record.storage_kind == 'absent':
+ raise errors.NoSuchRevision(revisions, revid)
+ revtext = record.get_bytes_as('fulltext')
+ self.outf.write(revtext.decode('utf-8'))
+
@display_command
def run(self, revision_id=None, revision=None):
if revision_id is not None and revision is not None:
@@ -350,23 +358,32 @@
' --revision or a revision_id')
b = WorkingTree.open_containing(u'.')[0].branch
- # TODO: jam 20060112 should cat-revision always output utf-8?
- if revision_id is not None:
- revision_id = osutils.safe_revision_id(revision_id, warn=False)
- try:
- self.outf.write(b.repository.get_revision_xml(revision_id).decode('utf-8'))
- except errors.NoSuchRevision:
- msg = "The repository %s contains no revision %s." % (b.repository.base,
- revision_id)
- raise errors.BzrCommandError(msg)
- elif revision is not None:
- for rev in revision:
- if rev is None:
- raise errors.BzrCommandError('You cannot specify a NULL'
- ' revision.')
- rev_id = rev.as_revision_id(b)
- self.outf.write(b.repository.get_revision_xml(rev_id).decode('utf-8'))
+ revisions = b.repository.revisions
+ if revisions is None:
+ raise errors.BzrCommandError('Repository %r does not support '
+ 'access to raw revision texts')
+ b.repository.lock_read()
+ try:
+ # TODO: jam 20060112 should cat-revision always output utf-8?
+ if revision_id is not None:
+ revision_id = osutils.safe_revision_id(revision_id, warn=False)
+ try:
+ self.print_revision(revisions, revision_id)
+ except errors.NoSuchRevision:
+ msg = "The repository %s contains no revision %s." % (
+ b.repository.base, revision_id)
+ raise errors.BzrCommandError(msg)
+ elif revision is not None:
+ for rev in revision:
+ if rev is None:
+ raise errors.BzrCommandError(
+ 'You cannot specify a NULL revision.')
+ rev_id = rev.as_revision_id(b)
+ self.print_revision(revisions, rev_id)
+ finally:
+ b.repository.unlock()
+
class cmd_dump_btree(Command):
"""Dump the contents of a btree index file to stdout.
=== modified file 'bzrlib/foreign.py'
--- a/bzrlib/foreign.py 2010-02-04 16:06:36 +0000
+++ b/bzrlib/foreign.py 2010-02-15 20:23:34 +0000
@@ -229,15 +229,6 @@
"""See Repository._get_inventory_xml()."""
return self._serialise_inventory(self.get_inventory(revision_id))
- def get_revision_xml(self, revision_id):
- """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))
-
class ForeignBranch(Branch):
"""Branch that exists in a foreign version control system."""
=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py 2010-02-16 00:53:04 +0000
+++ b/bzrlib/repository.py 2010-02-17 15:20:39 +0000
@@ -1895,23 +1895,6 @@
rev = self._serializer.read_revision_from_string(text)
yield (revid, rev)
- @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()
- # TODO: this can't just be replaced by:
- # return self._serializer.write_revision_to_string(
- # self.get_revision(revision_id))
- # as cStringIO preservers the encoding unlike write_revision_to_string
- # or some other call down the path.
- 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()
-
def get_deltas_for_revisions(self, revisions, specific_fileids=None):
"""Produce a generator of revision deltas.
=== modified file 'bzrlib/tests/blackbox/test_cat_revision.py'
--- a/bzrlib/tests/blackbox/test_cat_revision.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/tests/blackbox/test_cat_revision.py 2010-02-15 20:23:34 +0000
@@ -36,11 +36,16 @@
wt.commit('Commit two', rev_id='a at r-0-2')
wt.commit('Commit three', rev_id='a at r-0-3')
- revs = {
- 1:r.get_revision_xml('a at r-0-1'),
- 2:r.get_revision_xml('a at r-0-2'),
- 3:r.get_revision_xml('a at r-0-3'),
- }
+ r.lock_read()
+ try:
+ revs = {}
+ for i in (1, 2, 3):
+ revid = "a at r-0-%d" % i
+ stream = r.revisions.get_record_stream([(revid,)], 'unordered',
+ False)
+ revs[i] = stream.next().get_bytes_as('fulltext')
+ finally:
+ r.unlock()
self.check_output(revs[1], 'cat-revision a at r-0-1')
self.check_output(revs[2], 'cat-revision a at r-0-2')
More information about the bazaar-commits
mailing list