/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 breezy/bundle/commands.py

  • Committer: Jelmer Vernooij
  • Date: 2017-07-23 22:06:41 UTC
  • mfrom: (6738 trunk)
  • mto: This revision was merged to the branch mainline in revision 6739.
  • Revision ID: jelmer@jelmer.uk-20170723220641-69eczax9bmv8d6kk
Merge trunk, address review comments.

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 ..lazy_import import lazy_import
31
27
lazy_import(globals(), """
32
28
from breezy import (
33
29
    branch,
 
30
    errors,
34
31
    merge_directive,
35
32
    revision as _mod_revision,
36
33
    urlutils,
39
36
from breezy.i18n import gettext
40
37
""")
41
38
 
42
 
from ...commands import Command
 
39
from ..commands import Command
 
40
from ..sixish import (
 
41
    BytesIO,
 
42
    viewitems,
 
43
    )
43
44
 
44
45
 
45
46
class cmd_bundle_info(Command):
51
52
    encoding_type = 'exact'
52
53
 
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)
62
63
        else:
63
64
            if verbose:
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'))
70
70
 
71
71
        by_kind = {}
72
72
        file_ids = set()
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(
93
93
 
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')))
99
99
        if verbose:
100
100
            self.outf.write('\n')
101
101
            bundle_file.seek(0)
102
102
            line = bundle_file.readline()
103
103
            line = bundle_file.readline()
104
 
            import bz2
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')