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

Merge test-run support.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
"""Command that signs unsigned commits by the current user. """
 
17
"""Command which looks for unsigned commits by the current user, and signs them.
 
18
"""
18
19
 
19
20
from __future__ import absolute_import
20
21
 
22
23
    controldir,
23
24
    errors,
24
25
    gpg,
25
 
    repository as _mod_repository,
26
26
    revision as _mod_revision,
27
27
    )
28
28
from .commands import Command
44
44
    # repository
45
45
 
46
46
    takes_options = [
47
 
        Option('dry-run',
48
 
               help='Don\'t actually sign anything, just print'
49
 
               ' the revisions that would be signed.'),
50
 
        ]
 
47
            Option('dry-run',
 
48
                   help='Don\'t actually sign anything, just print'
 
49
                        ' the revisions that would be signed.'),
 
50
            ]
51
51
    takes_args = ['location?', 'committer?']
52
52
 
53
53
    def run(self, location=None, committer=None, dry_run=False):
67
67
        count = 0
68
68
        with repo.lock_write():
69
69
            graph = repo.get_graph()
70
 
            with _mod_repository.WriteGroup(repo):
 
70
            repo.start_write_group()
 
71
            try:
71
72
                for rev_id, parents in graph.iter_ancestry(
72
73
                        [branch.last_revision()]):
73
74
                    if _mod_revision.is_null(rev_id):
86
87
                    count += 1
87
88
                    if not dry_run:
88
89
                        repo.sign_revision(rev_id, gpg_strategy)
 
90
            except:
 
91
                repo.abort_write_group()
 
92
                raise
 
93
            else:
 
94
                repo.commit_write_group()
89
95
        self.outf.write(
90
 
            ngettext('Signed %d revision.\n', 'Signed %d revisions.\n',
91
 
                     count) % count)
 
96
            ngettext('Signed %d revision.\n', 'Signed %d revisions.\n', count) %
 
97
            count)
92
98
 
93
99
 
94
100
class cmd_verify_signatures(Command):
98
104
    """
99
105
 
100
106
    takes_options = [
101
 
        Option('acceptable-keys',
102
 
               help='Comma separated list of GPG key patterns which are'
103
 
               ' acceptable for verification.',
104
 
               short_name='k',
105
 
               type=text_type,),
106
 
        'revision',
107
 
        'verbose',
108
 
        ]
 
107
            Option('acceptable-keys',
 
108
                   help='Comma separated list of GPG key patterns which are'
 
109
                        ' acceptable for verification.',
 
110
                   short_name='k',
 
111
                   type=text_type,),
 
112
            'revision',
 
113
            'verbose',
 
114
          ]
109
115
    takes_args = ['location?']
110
116
 
111
117
    def run(self, acceptable_keys=None, revision=None, verbose=None,
112
 
            location=u'.'):
 
118
                                                            location=u'.'):
113
119
        bzrdir = controldir.ControlDir.open_containing(location)[0]
114
120
        branch = bzrdir.open_branch()
115
121
        repo = branch.repository
120
126
 
121
127
        def write(string):
122
128
            self.outf.write(string + "\n")
123
 
 
124
129
        def write_verbose(string):
125
130
            self.outf.write("  " + string + "\n")
126
131
 
127
132
        self.add_cleanup(repo.lock_read().unlock)
128
 
        # get our list of revisions
 
133
        #get our list of revisions
129
134
        revisions = []
130
135
        if revision is not None:
131
136
            if len(revision) == 1:
137
142
                if to_revid is None:
138
143
                    to_revno = branch.revno()
139
144
                if from_revno is None or to_revno is None:
140
 
                    raise errors.BzrCommandError(
141
 
                        gettext('Cannot verify a range of non-revision-history'
142
 
                                ' revisions'))
 
145
                    raise errors.BzrCommandError(gettext(
 
146
                    'Cannot verify a range of non-revision-history revisions'))
143
147
                for revno in range(from_revno, to_revno + 1):
144
148
                    revisions.append(branch.get_rev_id(revno))
145
149
        else:
146
 
            # all revisions by default including merges
 
150
            #all revisions by default including merges
147
151
            graph = repo.get_graph()
148
152
            revisions = []
149
153
            for rev_id, parents in graph.iter_ancestry(
157
161
        count, result, all_verifiable = gpg.bulk_verify_signatures(
158
162
            repo, revisions, gpg_strategy)
159
163
        if all_verifiable:
160
 
            write(gettext("All commits signed with verifiable keys"))
161
 
            if verbose:
162
 
                for message in gpg.verbose_valid_message(result):
163
 
                    write_verbose(message)
164
 
            return 0
 
164
               write(gettext("All commits signed with verifiable keys"))
 
165
               if verbose:
 
166
                   for message in gpg.verbose_valid_message(result):
 
167
                       write_verbose(message)
 
168
               return 0
165
169
        else:
166
170
            write(gpg.valid_commits_message(count))
167
171
            if verbose:
168
 
                for message in gpg.verbose_valid_message(result):
169
 
                    write_verbose(message)
 
172
               for message in gpg.verbose_valid_message(result):
 
173
                   write_verbose(message)
170
174
            write(gpg.expired_commit_message(count))
171
175
            if verbose:
172
 
                for message in gpg.verbose_expired_key_message(result, repo):
173
 
                    write_verbose(message)
 
176
               for message in gpg.verbose_expired_key_message(result, repo):
 
177
                   write_verbose(message)
174
178
            write(gpg.unknown_key_message(count))
175
179
            if verbose:
176
180
                for message in gpg.verbose_missing_key_message(result):
178
182
            write(gpg.commit_not_valid_message(count))
179
183
            if verbose:
180
184
                for message in gpg.verbose_not_valid_message(result, repo):
181
 
                    write_verbose(message)
 
185
                   write_verbose(message)
182
186
            write(gpg.commit_not_signed_message(count))
183
187
            if verbose:
184
188
                for message in gpg.verbose_not_signed_message(result, repo):