1
# Copyright (C) 2008, 2009, 2010 Canonical Ltd
1
# Copyright (C) 2008 Canonical Ltd
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
129
136
return self.read_revision_from_string(f.read())
132
class CHKSerializer(xml8.Serializer_v8):
139
class CHKSerializerSubtree(BEncodeRevisionSerializer1, xml6.Serializer_v6):
140
"""A CHKInventory based serializer that supports tree references"""
142
supported_kinds = set(['file', 'directory', 'symlink', 'tree-reference'])
144
revision_format_num = None
145
support_altered_by_hack = False
147
def _unpack_entry(self, elt):
149
if not kind in self.supported_kinds:
150
raise AssertionError('unsupported entry kind %s' % kind)
151
if kind == 'tree-reference':
152
file_id = elt.attrib['file_id']
153
name = elt.attrib['name']
154
parent_id = elt.attrib['parent_id']
155
revision = elt.get('revision')
156
reference_revision = elt.get('reference_revision')
157
return inventory.TreeReference(file_id, name, parent_id, revision,
160
return xml6.Serializer_v6._unpack_entry(self, elt)
162
def __init__(self, node_size, search_key_name):
163
self.maximum_size = node_size
164
self.search_key_name = search_key_name
167
class CHKSerializer(xml5.Serializer_v5):
133
168
"""A CHKInventory based serializer with 'plain' behaviour."""