~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/builtins.py

  • Committer: Robert Collins
  • Date: 2005-10-17 11:41:07 UTC
  • mfrom: (1442.1.60)
  • Revision ID: robertc@robertcollins.net-20051017114107-f5586285d825c105
Merge in first part of GPG support.

This adds check_signatures config support, triams back the transport api
to be leaner and easier to hook in suffixes - non primary streams in the store
associated with the fileid that primary data is stored in, a gpg module which
will encapsulate all signing and checking operations.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
from bzrlib.branch import Branch
27
27
from bzrlib import BZRDIR
28
28
from bzrlib.commands import Command
 
29
from bzrlib.revisionspec import RevisionSpec
29
30
from bzrlib.workingtree import WorkingTree
30
31
 
31
32
 
104
105
    takes_options = ['revision']
105
106
    
106
107
    def run(self, revision_id=None, revision=None):
107
 
        from bzrlib.revisionspec import RevisionSpec
108
108
 
109
109
        if revision_id is not None and revision is not None:
110
110
            raise BzrCommandError('You can only supply one of revision_id or --revision')
136
136
    takes_args = ['revision_info*']
137
137
    takes_options = ['revision']
138
138
    def run(self, revision=None, revision_info_list=[]):
139
 
        from bzrlib.revisionspec import RevisionSpec
140
139
 
141
140
        revs = []
142
141
        if revision is not None:
1479
1478
        finally:
1480
1479
            b.unlock()
1481
1480
 
 
1481
 
 
1482
class cmd_re_sign(Command):
 
1483
    """Create a digital signature for an existing revision."""
 
1484
    # TODO be able to replace existing ones.
 
1485
 
 
1486
    hidden = True # is this right ?
 
1487
    takes_args = ['revision_id?']
 
1488
    takes_options = ['revision']
 
1489
    
 
1490
    def run(self, revision_id=None, revision=None):
 
1491
        import bzrlib.config as config
 
1492
        import bzrlib.gpg as gpg
 
1493
        if revision_id is not None and revision is not None:
 
1494
            raise BzrCommandError('You can only supply one of revision_id or --revision')
 
1495
        if revision_id is None and revision is None:
 
1496
            raise BzrCommandError('You must supply either --revision or a revision_id')
 
1497
        b = Branch.open_containing('.')
 
1498
        gpg_strategy = gpg.GPGStrategy(config.BranchConfig(b))
 
1499
        if revision_id is not None:
 
1500
            b.sign_revision(revision_id, gpg_strategy)
 
1501
        elif revision is not None:
 
1502
            for rev in revision:
 
1503
                if rev is None:
 
1504
                    raise BzrCommandError('You cannot specify a NULL revision.')
 
1505
                revno, rev_id = rev.in_history(b)
 
1506
                b.sign_revision(rev_id, gpg_strategy)
 
1507
 
 
1508
 
1482
1509
# these get imported and then picked up by the scan for cmd_*
1483
1510
# TODO: Some more consistent way to split command definitions across files;
1484
1511
# we do need to load at least some information about them to know of