/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to brzlib/bundle/commands.py

  • Committer: Jelmer Vernooij
  • Date: 2017-05-21 12:41:27 UTC
  • mto: This revision was merged to the branch mainline in revision 6623.
  • Revision ID: jelmer@jelmer.uk-20170521124127-iv8etg0vwymyai6y
s/bzr/brz/ in apport config.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
and for applying a changeset.
22
22
"""
23
23
 
24
 
from io import BytesIO
25
 
 
26
 
from ... import (
27
 
    errors,
28
 
    )
29
 
 
30
 
from ...lazy_import import lazy_import
 
24
from __future__ import absolute_import
 
25
 
 
26
from cStringIO import StringIO
 
27
 
 
28
from brzlib.lazy_import import lazy_import
31
29
lazy_import(globals(), """
32
 
from breezy import (
 
30
from brzlib import (
33
31
    branch,
 
32
    errors,
34
33
    merge_directive,
35
34
    revision as _mod_revision,
36
35
    urlutils,
37
36
    transport,
38
37
    )
39
 
from breezy.i18n import gettext
 
38
from brzlib.i18n import gettext
40
39
""")
41
40
 
42
 
from ...commands import Command
 
41
from brzlib.commands import Command
43
42
 
44
43
 
45
44
class cmd_bundle_info(Command):
51
50
    encoding_type = 'exact'
52
51
 
53
52
    def run(self, location, verbose=False):
54
 
        from breezy.bzr.bundle.serializer import read_bundle
55
 
        from breezy.mergeable import read_mergeable_from_url
56
 
        from breezy import osutils
 
53
        from brzlib.bundle.serializer import read_bundle
 
54
        from brzlib.bundle import read_mergeable_from_url
 
55
        from brzlib import osutils
57
56
        term_encoding = osutils.get_terminal_encoding()
58
57
        bundle_info = read_mergeable_from_url(location)
59
58
        if isinstance(bundle_info, merge_directive.BaseMergeDirective):
60
 
            bundle_file = BytesIO(bundle_info.get_raw_bundle())
 
59
            bundle_file = StringIO(bundle_info.get_raw_bundle())
61
60
            bundle_info = read_bundle(bundle_file)
62
61
        else:
63
62
            if verbose:
64
63
                raise errors.BzrCommandError(gettext(
65
 
                    '--verbose requires a merge directive'))
 
64
                            '--verbose requires a merge directive'))
66
65
        reader_method = getattr(bundle_info, 'get_bundle_reader', None)
67
66
        if reader_method is None:
68
 
            raise errors.BzrCommandError(
69
 
                gettext('Bundle format not supported'))
 
67
            raise errors.BzrCommandError(gettext('Bundle format not supported'))
70
68
 
71
69
        by_kind = {}
72
70
        file_ids = set()
73
71
        for bytes, parents, repo_kind, revision_id, file_id\
74
 
                in reader_method().iter_records():
 
72
            in reader_method().iter_records():
75
73
            by_kind.setdefault(repo_kind, []).append(
76
74
                (bytes, parents, repo_kind, revision_id, file_id))
77
75
            if file_id is not None:
78
76
                file_ids.add(file_id)
79
77
        self.outf.write(gettext('Records\n'))
80
 
        for kind, records in sorted(by_kind.items()):
 
78
        for kind, records in sorted(by_kind.iteritems()):
81
79
            multiparent = sum(1 for b, m, k, r, f in records if
82
80
                              len(m.get('parents', [])) > 1)
83
81
            self.outf.write(gettext('{0}: {1} ({2} multiparent)\n').format(
93
91
 
94
92
        self.outf.write(gettext('Revisions\n'))
95
93
        self.outf.write((gettext('nicks: %s\n')
96
 
                         % ', '.join(sorted(nicks))).encode(term_encoding, 'replace'))
 
94
            % ', '.join(sorted(nicks))).encode(term_encoding, 'replace'))
97
95
        self.outf.write((gettext('committers: \n%s\n') %
98
 
                         '\n'.join(sorted(committers)).encode(term_encoding, 'replace')))
 
96
        '\n'.join(sorted(committers)).encode(term_encoding, 'replace')))
99
97
        if verbose:
100
98
            self.outf.write('\n')
101
99
            bundle_file.seek(0)
102
100
            line = bundle_file.readline()
103
101
            line = bundle_file.readline()
104
 
            import bz2
105
 
            content = bz2.decompress(bundle_file.read())
 
102
            content = bundle_file.read().decode('bz2')
106
103
            self.outf.write(gettext("Decoded contents\n"))
107
104
            self.outf.write(content)
108
105
            self.outf.write('\n')