~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/cmd_version_info.py

  • Committer: Patch Queue Manager
  • Date: 2015-12-17 18:39:00 UTC
  • mfrom: (6606.1.2 fix-float)
  • Revision ID: pqm@pqm.ubuntu.com-20151217183900-0719du2uv1kwu3lc
(vila) Inline testtools private method to fix an issue in xenial (the
 private implementation has changed in an backward incompatible way).
 (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""Commands for generating snapshot information about a bzr tree."""
18
18
 
 
19
from __future__ import absolute_import
 
20
 
19
21
from bzrlib.lazy_import import lazy_import
20
22
 
21
23
lazy_import(globals(), """
83
85
                     Option('include-file-revisions',
84
86
                            help='Include the last revision for each file.'),
85
87
                     Option('template', type=str, help='Template for the output.'),
 
88
                     'revision',
86
89
                     ]
87
90
    takes_args = ['location?']
88
91
 
90
93
 
91
94
    def run(self, location=None, format=None,
92
95
            all=False, check_clean=False, include_history=False,
93
 
            include_file_revisions=False, template=None):
 
96
            include_file_revisions=False, template=None,
 
97
            revision=None):
 
98
 
 
99
        if revision and len(revision) > 1:
 
100
            raise errors.BzrCommandError(
 
101
                gettext('bzr version-info --revision takes exactly'
 
102
                        ' one revision specifier'))
94
103
 
95
104
        if location is None:
96
105
            location = '.'
98
107
        if format is None:
99
108
            format = version_info_formats.format_registry.get()
100
109
 
101
 
        wt = None
102
110
        try:
103
111
            wt = workingtree.WorkingTree.open_containing(location)[0]
104
112
        except errors.NoWorkingTree:
105
113
            b = branch.Branch.open(location)
 
114
            wt = None
106
115
        else:
107
116
            b = wt.branch
108
117
 
109
 
        if all or template:
 
118
        if all:
110
119
            include_history = True
111
120
            check_clean = True
112
 
            include_file_revisions=True
 
121
            include_file_revisions = True
 
122
        if template:
 
123
            include_history = True
 
124
            include_file_revisions = True
 
125
            if '{clean}' in template:
 
126
                check_clean = True
 
127
 
 
128
        if revision is not None:
 
129
            revision_id = revision[0].as_revision_id(b)
 
130
        else:
 
131
            revision_id = None
113
132
 
114
133
        builder = format(b, working_tree=wt,
115
134
                check_for_clean=check_clean,
116
135
                include_revision_history=include_history,
117
136
                include_file_revisions=include_file_revisions,
118
 
                template=template)
 
137
                template=template, revision_id=revision_id)
119
138
        builder.generate(self.outf)