~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to __init__.py

  • Committer: John Arbash Meinel
  • Date: 2005-06-28 22:08:30 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-20050628220830-aad25e5b75a60615
Merging send-changeset updates from jrydberg

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
    If no revision has been specified, the last commited change will
15
15
    be sent.
16
16
 
17
 
    Subject of the mail can be specified by the --subject option,
 
17
    Subject of the mail can be specified by the --message option,
18
18
    otherwise information from the changeset log will be used.
 
19
 
 
20
    A editor will be spawned where the user may enter a description
 
21
    of the changeset.  The description can be read from a file with
 
22
    the --file FILE option.
19
23
    """
20
 
    takes_options = ['revision', 'subject', 'diff-options']
 
24
    takes_options = ['revision', 'message', 'file', 'diff-options']
21
25
    takes_args = ['to?']
22
26
 
23
 
    def run(self, to=None, subject=None, revision=None, diff_options=None):
 
27
    def run(self, to=None, message=None, revision=None, file=None,
 
28
            diff_options=None):
24
29
        from tempfile import TemporaryFile
25
30
        from bzrlib import find_branch
26
31
        from bzrlib.commands import BzrCommandError
27
32
        import gen_changeset
28
33
        import send_changeset
29
34
        import sys
30
 
 
 
35
        import StringIO
 
36
        
31
37
        if isinstance(revision, (list, tuple)):
32
38
            if len(revision) > 1:
33
39
                raise BzrCommandError('We do not support rollup-changesets yet.')
44
50
        if not revision:
45
51
            revision = b.revno()
46
52
 
47
 
        rev = b.get_revision(b.lookup_revision(revision))
48
 
        if not subject:
49
 
            subject = rev.message.split('\n')[0]
50
 
 
51
 
        info = "Changset for revision %d by %s\n" % (revision, rev.committer)
52
 
        info += "with the following message:\n"
53
 
        for line in rev.message.split('\n'):
54
 
            info += "  " + line + "\n"
55
 
 
56
 
        message = bzrlib.osutils.get_text_message(info)
57
 
 
58
 
        # FIXME: StringIO instead of temporary file
59
 
        changeset_fp = TemporaryFile()
60
 
        gen_changeset.show_changeset(b, revision,
61
 
                                     external_diff_options=diff_options,
62
 
                                     to_file=changeset_fp)
63
 
        
64
 
        changeset_fp.seek(0)
65
 
        send_changeset.send_changeset(to, bzrlib.osutils._get_user_id(),
66
 
                                      subject, changeset_fp, message)
67
 
 
 
53
        send_changeset.send_changeset(b, revision, to, message, file,
 
54
                                      diff_options)
68
55
 
69
56
class cmd_changeset(bzrlib.commands.Command):
70
57
    """Generate a bundled up changeset.
148
135
bzrlib.commands.register_command(cmd_apply_changeset)
149
136
bzrlib.commands.register_command(cmd_send_changeset)
150
137
 
151
 
bzrlib.commands.OPTIONS['subject'] = str
152
138
bzrlib.commands.OPTIONS['reverse'] = None
153
139
bzrlib.commands.OPTIONS['auto-commit'] = None
154
140
cmd_apply_changeset.takes_options.append('reverse')