~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to __init__.py

  • Committer: John Arbash Meinel
  • Date: 2005-07-10 06:40:38 UTC
  • mto: (0.5.85) (1185.82.1 bzr-w-changeset)
  • mto: This revision was merged to the branch mainline in revision 1738.
  • Revision ID: john@arbash-meinel.com-20050710064038-d59be0a0a1f2d5f4
(broken), starting to change the syntax of the command to allow cset to take a base and a target.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 
27
27
    def run(self, to=None, message=None, revision=None, file=None):
28
28
        from bzrlib import find_branch
29
 
        from bzrlib.commands import BzrCommandError
 
29
        from bzrlib.errors import BzrCommandError
30
30
        from send_changeset import send_changeset
31
31
        
32
32
        if isinstance(revision, (list, tuple)):
53
53
    This changeset contains all of the meta-information of a
54
54
    diff, rather than just containing the patch information.
55
55
 
56
 
    It will store it into FILENAME if supplied, otherwise it writes
57
 
    to stdout
58
 
 
59
 
    Right now, rollup changesets, or working tree changesets are
60
 
    not supported. This will only generate a changeset that has been
61
 
    committed. You can use "--revision" to specify a certain change
62
 
    to display.
 
56
    BASE - This is the target tree with which you want to merge.
 
57
           It will be used as the base for all patches. Anyone
 
58
           wanting to merge the changeset will be required to have BASE
 
59
    TARGET - This is the final revision which is desired to be in the
 
60
             changeset. It defaults to the last committed revision. './@'
 
61
    STARTING-REV-ID - All revisions between STARTING-REV and TARGET will
 
62
                      be bundled up in the changeset. By default this is
 
63
                      chosen as the merge root.
 
64
                      (NOT Implemented yet)
 
65
 
 
66
 
 
67
    If --verbose, renames will be given as an 'add + delete' style patch.
63
68
    """
64
 
    takes_options = ['revision']
65
 
    takes_args = ['filename?']
 
69
    takes_options = ['verbose']
 
70
    takes_args = ['base', 'target?', 'starting-rev-id?']
66
71
    aliases = ['cset']
67
72
 
68
 
    def run(self, revision=None, filename=None):
 
73
    def run(self, base=None, target=None, starting_rev_id=None, verbose=False):
69
74
        from bzrlib import find_branch
 
75
        from bzrlib.commands import parse_spec
 
76
        from bzrlib.errors import BzrCommandError
70
77
        import gen_changeset
71
78
        import sys
72
79
        import codecs
73
80
 
74
 
        if filename is None or filename == '-':
75
 
            outf = codecs.getwriter(bzrlib.user_encoding)(sys.stdout, errors='replace')
76
 
        else:
77
 
            f = open(filename, 'wb')
78
 
            outf = codecs.getwriter(bzrlib.user_encoding)(f, errors='replace')
79
 
 
80
 
        if not isinstance(revision, (list, tuple)):
81
 
            revision = [revision]
82
 
        b = find_branch('.')
83
 
 
84
 
        gen_changeset.show_changeset(b, revision, to_file=outf)
 
81
        base_path, base_revno = parse_spec(base)
 
82
        b_base = find_branch(base_path)
 
83
        if base_revno is None or base_revno == -1:
 
84
            base_rev_id = base_branch.last_patch()
 
85
        else:
 
86
            base_rev_id = base_branch.last_patch()
 
87
 
 
88
        if target is None:
 
89
            target = './@'
 
90
        b_target_path, target_revno = parse_spec(target)
 
91
        b_target = find_branch(b_target_path)
 
92
        if target_revno is None or target_revno == -1:
 
93
            target_rev_id = b_target.last_patch()
 
94
        else:
 
95
            target_rev_id = b_target.lookup_revision(target_revno)
 
96
 
 
97
        outf = codecs.getwriter(bzrlib.user_encoding)(sys.stdout,
 
98
                errors='replace')
 
99
 
 
100
        if starting_rev_id is not None:
 
101
            raise BzrCommandError('Specifying the STARTING-REV-ID'
 
102
                    ' not yet supported')
 
103
 
 
104
        gen_changeset.show_changeset(base_branch, base_rev_id,
 
105
                target_branch, target_rev_id,
 
106
                starting_rev_id,
 
107
                to_file=outf, include_full_diff=verbose)
85
108
 
86
109
class cmd_verify_changeset(bzrlib.commands.Command):
87
110
    """Read a written changeset, and make sure it is valid.