chiark / gitweb /
Make documentation less confusing
[stgit] / stgit / commands / new.py
CommitLineData
fcee87cf
CM
1
2__copyright__ = """
3Copyright (C) 2005, Catalin Marinas <catalin.marinas@gmail.com>
4
5This program is free software; you can redistribute it and/or modify
6it under the terms of the GNU General Public License version 2 as
7published by the Free Software Foundation.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program; if not, write to the Free Software
16Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17"""
18
19import sys, os
20from optparse import OptionParser, make_option
21
22from stgit.commands.common import *
23from stgit.utils import *
24from stgit import stack, git
25
26
27help = 'create a new patch and make it the topmost one'
9060d420 28usage = """%prog [options] [name]
26aab5b0
CM
29
30Create a new, empty patch and make it the topmost one. If the
31'--message' option is not passed, an editor is invoked with the
1f3bb017
CM
32.git/patchdescr.tmpl, ~/.stgit/templates/patchdescr.tmpl or
33/usr/share/stgit/templates/patchdescr.tmpl file used a as template,
b85450f9
KH
34together with generated lines. The local changes in the working tree
35are not included in the patch; an "stg refresh" command is needed for
36this.
9060d420
KH
37
38If no name is given for the new patch, one is generated from the first
39line of the commit message."""
fcee87cf 40
7b601c9e 41directory = DirectoryGotoToplevel()
fcee87cf
CM
42options = [make_option('-m', '--message',
43 help = 'use MESSAGE as the patch description'),
6ad48e48
PBG
44 make_option('-s', '--showpatch',
45 help = 'show the patch content in the editor buffer',
46 action = 'store_true'),
19cd0a8f
CM
47 make_option('-a', '--author', metavar = '"NAME <EMAIL>"',
48 help = 'use "NAME <EMAIL>" as the author details'),
fcee87cf
CM
49 make_option('--authname',
50 help = 'use AUTHNAME as the author name'),
51 make_option('--authemail',
52 help = 'use AUTHEMAIL as the author e-mail'),
53 make_option('--authdate',
54 help = 'use AUTHDATE as the author date'),
55 make_option('--commname',
56 help = 'use COMMNAME as the committer name'),
57 make_option('--commemail',
f3684678
KH
58 help = 'use COMMEMAIL as the committer e-mail')
59 ] + make_sign_options()
fcee87cf
CM
60
61
62def func(parser, options, args):
63 """Creates a new patch
64 """
9060d420
KH
65 if len(args) == 0:
66 name = None # autogenerate a name
67 elif len(args) == 1:
68 name = args[0]
69 else:
fcee87cf
CM
70 parser.error('incorrect number of arguments')
71
3bd6274e 72 check_conflicts()
6972fd6b 73 check_head_top_equal(crt_series)
fcee87cf 74
19cd0a8f
CM
75 if options.author:
76 options.authname, options.authemail = name_email(options.author)
77
9060d420 78 crt_series.new_patch(name, message = options.message,
6ad48e48 79 show_patch = options.showpatch,
fcee87cf
CM
80 author_name = options.authname,
81 author_email = options.authemail,
82 author_date = options.authdate,
83 committer_name = options.commname,
f3684678
KH
84 committer_email = options.commemail,
85 sign_str = options.sign_str)