/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/cmd_version_info.py

  • Committer: Jelmer Vernooij
  • Date: 2018-07-08 14:45:27 UTC
  • mto: This revision was merged to the branch mainline in revision 7036.
  • Revision ID: jelmer@jelmer.uk-20180708144527-codhlvdcdg9y0nji
Fix a bunch of merge tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2005-2011 Canonical Ltd
2
2
#
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
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
 
"""Commands for generating snapshot information about a bzr tree."""
18
 
 
19
 
from bzrlib.lazy_import import lazy_import
 
17
"""Commands for generating snapshot information about a brz tree."""
 
18
 
 
19
from __future__ import absolute_import
 
20
 
 
21
from .lazy_import import lazy_import
20
22
 
21
23
lazy_import(globals(), """
22
 
from bzrlib import (
 
24
from breezy import (
23
25
    branch,
24
26
    errors,
25
 
    ui,
26
27
    version_info_formats,
27
28
    workingtree,
28
29
    )
 
30
from breezy.i18n import gettext
29
31
""")
30
32
 
31
 
from bzrlib.commands import Command
32
 
from bzrlib.option import Option, RegistryOption
 
33
from .commands import Command
 
34
from .option import Option, RegistryOption
 
35
from .sixish import text_type
33
36
 
34
37
 
35
38
def _parse_version_info_format(format):
42
45
        return version_info_formats.get_builder(format)
43
46
    except KeyError:
44
47
        formats = version_info_formats.get_builder_formats()
45
 
        raise errors.BzrCommandError('No known version info format %s.'
46
 
                                     ' Supported types are: %s'
47
 
                                     % (format, formats))
 
48
        raise errors.BzrCommandError(gettext('No known version info format {0}.'
 
49
                                     ' Supported types are: {1}').format(
 
50
                                     format, formats))
48
51
 
49
52
 
50
53
class cmd_version_info(Command):
56
59
 
57
60
    For example::
58
61
 
59
 
      bzr version-info --custom \\
 
62
      brz version-info --custom \\
60
63
        --template="#define VERSION_INFO \\"Project 1.2.3 (r{revno})\\"\\n"
61
64
 
62
65
    will produce a C header file with formatted string containing the
74
77
    takes_options = [RegistryOption('format',
75
78
                            'Select the output format.',
76
79
                            value_switches=True,
77
 
                            lazy_registry=('bzrlib.version_info_formats',
 
80
                            lazy_registry=('breezy.version_info_formats',
78
81
                                           'format_registry')),
79
82
                     Option('all', help='Include all possible information.'),
80
83
                     Option('check-clean', help='Check if tree is clean.'),
82
85
                            help='Include the revision-history.'),
83
86
                     Option('include-file-revisions',
84
87
                            help='Include the last revision for each file.'),
85
 
                     Option('template', type=str, help='Template for the output.'),
 
88
                     Option('template', type=text_type, help='Template for the output.'),
 
89
                     'revision',
86
90
                     ]
87
91
    takes_args = ['location?']
88
92
 
90
94
 
91
95
    def run(self, location=None, format=None,
92
96
            all=False, check_clean=False, include_history=False,
93
 
            include_file_revisions=False, template=None):
 
97
            include_file_revisions=False, template=None,
 
98
            revision=None):
 
99
 
 
100
        if revision and len(revision) > 1:
 
101
            raise errors.BzrCommandError(
 
102
                gettext('brz version-info --revision takes exactly'
 
103
                        ' one revision specifier'))
94
104
 
95
105
        if location is None:
96
106
            location = '.'
98
108
        if format is None:
99
109
            format = version_info_formats.format_registry.get()
100
110
 
101
 
        wt = None
102
111
        try:
103
112
            wt = workingtree.WorkingTree.open_containing(location)[0]
104
113
        except errors.NoWorkingTree:
105
114
            b = branch.Branch.open(location)
 
115
            wt = None
106
116
        else:
107
117
            b = wt.branch
108
118
 
109
 
        if all or template:
 
119
        if all:
110
120
            include_history = True
111
121
            check_clean = True
112
 
            include_file_revisions=True
 
122
            include_file_revisions = True
 
123
        if template:
 
124
            include_history = True
 
125
            include_file_revisions = True
 
126
            if '{clean}' in template:
 
127
                check_clean = True
 
128
 
 
129
        if revision is not None:
 
130
            revision_id = revision[0].as_revision_id(b)
 
131
        else:
 
132
            revision_id = None
113
133
 
114
134
        builder = format(b, working_tree=wt,
115
135
                check_for_clean=check_clean,
116
136
                include_revision_history=include_history,
117
137
                include_file_revisions=include_file_revisions,
118
 
                template=template)
119
 
        builder.generate(ui.ui_factory.make_output_stream())
 
138
                template=template, revision_id=revision_id)
 
139
        builder.generate(self.outf)