~mdw
/
stgit
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Stgit: allow importing series files where patch names include slashes
[stgit]
/
stgit
/
commands
/
imprt.py
diff --git
a/stgit/commands/imprt.py
b/stgit/commands/imprt.py
index
fcbe9d3
..
c8cf42b
100644
(file)
--- a/
stgit/commands/imprt.py
+++ b/
stgit/commands/imprt.py
@@
-50,6
+50,9
@@
options = [make_option('-m', '--mail',
make_option('-i', '--ignore',
help = 'ignore the applied patches in the series',
action = 'store_true'),
make_option('-i', '--ignore',
help = 'ignore the applied patches in the series',
action = 'store_true'),
+ make_option('--replace',
+ help = 'replace the unapplied patches in the series',
+ action = 'store_true'),
make_option('-b', '--base',
help = 'use BASE instead of HEAD for file importing'),
make_option('-e', '--edit',
make_option('-b', '--base',
help = 'use BASE instead of HEAD for file importing'),
make_option('-e', '--edit',
@@
-82,6
+85,11
@@
def __strip_patch_name(name):
return stripped
return stripped
+def __replace_slashes_with_dashes(name):
+ stripped = name.replace('/', '-')
+
+ return stripped
+
def __parse_description(descr):
"""Parse the patch description and return the new description and
author information (if any).
def __parse_description(descr):
"""Parse the patch description and return the new description and
author information (if any).
@@
-231,6
+239,11
@@
def __import_patch(patch, filename, options):
message, author_name, author_email, author_date = \
__parse_patch(filename)
message, author_name, author_email, author_date = \
__parse_patch(filename)
+ if not patch:
+ patch = make_patch_name(message)
+ if not patch:
+ raise CmdException, 'Unknown patch name'
+
# refresh_patch() will invoke the editor in this case, with correct
# patch content
if not message:
# refresh_patch() will invoke the editor in this case, with correct
# patch content
if not message:
@@
-248,6
+261,9
@@
def __import_patch(patch, filename, options):
if options.commemail:
committer_email = options.commemail
if options.commemail:
committer_email = options.commemail
+ if options.replace and patch in crt_series.get_unapplied():
+ crt_series.delete_patch(patch)
+
crt_series.new_patch(patch, message = message, can_edit = False,
author_name = author_name,
author_email = author_email,
crt_series.new_patch(patch, message = message, can_edit = False,
author_name = author_name,
author_email = author_email,
@@
-288,6
+304,7
@@
def __import_series(filename, options):
if options.strip:
patch = __strip_patch_name(patch)
if options.strip:
patch = __strip_patch_name(patch)
+ patch = __replace_slashes_with_dashes(patch);
if options.ignore and patch in applied:
print 'Ignoring already applied patch "%s"' % patch
continue
if options.ignore and patch in applied:
print 'Ignoring already applied patch "%s"' % patch
continue
@@
-317,7
+334,7
@@
def func(parser, options, args):
elif filename:
patch = os.path.basename(filename)
else:
elif filename:
patch = os.path.basename(filename)
else:
-
raise CmdException, 'Unknown patch name
'
+
patch = '
'
if options.strip:
patch = __strip_patch_name(patch)
if options.strip:
patch = __strip_patch_name(patch)