~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/repofmt/groupcompress_repo.py

  • Committer: Jelmer Vernooij
  • Date: 2012-02-20 12:19:29 UTC
  • mfrom: (6437.23.11 2.5)
  • mto: (6581.1.1 trunk)
  • mto: This revision was merged to the branch mainline in revision 6582.
  • Revision ID: jelmer@samba.org-20120220121929-7ni2psvjoatm1yp4
Merge bzr/2.5.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""Repository formats using CHK inventories and groupcompress compression."""
18
18
 
 
19
from __future__ import absolute_import
 
20
 
19
21
import time
20
22
 
21
23
from bzrlib import (
978
980
            if record.storage_kind != 'absent':
979
981
                texts[record.key] = record.get_bytes_as('fulltext')
980
982
            else:
981
 
                raise errors.NoSuchRevision(self, record.key)
 
983
                texts[record.key] = None
982
984
        for key in keys:
983
 
            yield inventory.CHKInventory.deserialise(self.chk_bytes, texts[key], key)
 
985
            bytes = texts[key]
 
986
            if bytes is None:
 
987
                yield (None, key[-1])
 
988
            else:
 
989
                yield (inventory.CHKInventory.deserialise(
 
990
                    self.chk_bytes, bytes, key), key[-1])
984
991
 
985
 
    def _iter_inventory_xmls(self, revision_ids, ordering):
 
992
    def _get_inventory_xml(self, revision_id):
 
993
        """Get serialized inventory as a string."""
986
994
        # Without a native 'xml' inventory, this method doesn't make sense.
987
995
        # However older working trees, and older bundles want it - so we supply
988
996
        # it allowing _get_inventory_xml to work. Bundles currently use the
989
997
        # serializer directly; this also isn't ideal, but there isn't an xml
990
 
        # iteration interface offered at all for repositories. We could make
991
 
        # _iter_inventory_xmls be part of the contract, even if kept private.
992
 
        inv_to_str = self._serializer.write_inventory_to_string
993
 
        for inv in self.iter_inventories(revision_ids, ordering=ordering):
994
 
            yield inv_to_str(inv), inv.revision_id
 
998
        # iteration interface offered at all for repositories.
 
999
        return self._serializer.write_inventory_to_string(
 
1000
            self.get_inventory(revision_id))
995
1001
 
996
1002
    def _find_present_inventory_keys(self, revision_keys):
997
1003
        parent_map = self.inventories.get_parent_map(revision_keys)
1384
1390
 
1385
1391
    _matchingbzrdir = property(_get_matching_bzrdir, _ignore_setting_bzrdir)
1386
1392
 
1387
 
    def get_format_string(self):
 
1393
    @classmethod
 
1394
    def get_format_string(cls):
1388
1395
        return ('Bazaar repository format 2a (needs bzr 1.16 or later)\n')
1389
1396
 
1390
1397
    def get_format_description(self):
1406
1413
 
1407
1414
    _matchingbzrdir = property(_get_matching_bzrdir, _ignore_setting_bzrdir)
1408
1415
 
1409
 
    def get_format_string(self):
 
1416
    @classmethod
 
1417
    def get_format_string(cls):
1410
1418
        return ('Bazaar development format 8\n')
1411
1419
 
1412
1420
    def get_format_description(self):