21
21
and for applying a changeset.
24
from io import BytesIO
30
from ...lazy_import import lazy_import
24
from __future__ import absolute_import
26
from ..lazy_import import lazy_import
31
27
lazy_import(globals(), """
32
28
from breezy import (
35
32
revision as _mod_revision,
51
52
encoding_type = 'exact'
53
54
def run(self, location, verbose=False):
54
from breezy.bzr.bundle.serializer import read_bundle
55
from breezy.mergeable import read_mergeable_from_url
55
from breezy.bundle.serializer import read_bundle
56
from breezy.bundle import read_mergeable_from_url
56
57
from breezy import osutils
57
58
term_encoding = osutils.get_terminal_encoding()
58
59
bundle_info = read_mergeable_from_url(location)
61
62
bundle_info = read_bundle(bundle_file)
64
raise errors.CommandError(gettext(
65
'--verbose requires a merge directive'))
65
raise errors.BzrCommandError(gettext(
66
'--verbose requires a merge directive'))
66
67
reader_method = getattr(bundle_info, 'get_bundle_reader', None)
67
68
if reader_method is None:
68
raise errors.CommandError(
69
gettext('Bundle format not supported'))
69
raise errors.BzrCommandError(gettext('Bundle format not supported'))
73
73
for bytes, parents, repo_kind, revision_id, file_id\
74
in reader_method().iter_records():
74
in reader_method().iter_records():
75
75
by_kind.setdefault(repo_kind, []).append(
76
76
(bytes, parents, repo_kind, revision_id, file_id))
77
77
if file_id is not None:
78
78
file_ids.add(file_id)
79
79
self.outf.write(gettext('Records\n'))
80
for kind, records in sorted(by_kind.items()):
80
for kind, records in sorted(viewitems(by_kind)):
81
81
multiparent = sum(1 for b, m, k, r, f in records if
82
82
len(m.get('parents', [])) > 1)
83
83
self.outf.write(gettext('{0}: {1} ({2} multiparent)\n').format(
94
94
self.outf.write(gettext('Revisions\n'))
95
95
self.outf.write((gettext('nicks: %s\n')
96
% ', '.join(sorted(nicks))).encode(term_encoding, 'replace'))
96
% ', '.join(sorted(nicks))).encode(term_encoding, 'replace'))
97
97
self.outf.write((gettext('committers: \n%s\n') %
98
'\n'.join(sorted(committers)).encode(term_encoding, 'replace')))
98
'\n'.join(sorted(committers)).encode(term_encoding, 'replace')))
100
100
self.outf.write('\n')
101
101
bundle_file.seek(0)
102
102
line = bundle_file.readline()
103
103
line = bundle_file.readline()
105
content = bz2.decompress(bundle_file.read())
104
content = bundle_file.read().decode('bz2')
106
105
self.outf.write(gettext("Decoded contents\n"))
107
106
self.outf.write(content)
108
107
self.outf.write('\n')