~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/sign_my_commits.py

  • Committer: John Arbash Meinel
  • Date: 2007-05-04 18:59:36 UTC
  • mto: This revision was merged to the branch mainline in revision 2643.
  • Revision ID: john@arbash-meinel.com-20070504185936-1mjdoqmtz74xe5mg
A C implementation of _fields_to_entry_0_parents drops the time from 400ms to 330ms for a 21k-entry tree

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
    # (both mainline and merged), but not other revisions that may be in the
42
42
    # repository
43
43
 
44
 
    takes_options = [
45
 
            Option('dry-run',
46
 
                   help='Don\'t actually sign anything, just print'
47
 
                        ' the revisions that would be signed.'),
48
 
            ]
 
44
    takes_options = [Option('dry-run'
 
45
                            , help='Don\'t actually sign anything, just print'
 
46
                                   ' the revisions that would be signed')
 
47
                    ]
49
48
    takes_args = ['location?', 'committer?']
50
49
 
51
50
    def run(self, location=None, committer=None, dry_run=False):
65
64
        count = 0
66
65
        repo.lock_write()
67
66
        try:
68
 
            repo.start_write_group()
69
 
            try:
70
 
                for rev_id in repo.get_ancestry(branch.last_revision())[1:]:
71
 
                    if repo.has_signature_for_revision_id(rev_id):
72
 
                        continue
73
 
                    rev = repo.get_revision(rev_id)
74
 
                    if rev.committer != committer:
75
 
                        continue
76
 
                    # We have a revision without a signature who has a 
77
 
                    # matching committer, start signing
78
 
                    print rev_id
79
 
                    count += 1
80
 
                    if not dry_run:
81
 
                        repo.sign_revision(rev_id, gpg_strategy)
82
 
            except:
83
 
                repo.abort_write_group()
84
 
                raise
85
 
            else:
86
 
                repo.commit_write_group()
 
67
            for rev_id in repo.get_ancestry(branch.last_revision())[1:]:
 
68
                if repo.has_signature_for_revision_id(rev_id):
 
69
                    continue
 
70
                rev = repo.get_revision(rev_id)
 
71
                if rev.committer != committer:
 
72
                    continue
 
73
                # We have a revision without a signature who has a 
 
74
                # matching committer, start signing
 
75
                print rev_id
 
76
                count += 1
 
77
                if not dry_run:
 
78
                    repo.sign_revision(rev_id, gpg_strategy)
87
79
        finally:
88
80
            repo.unlock()
89
81
        print 'Signed %d revisions' % (count,)