X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/bcb6d890a9805ef09bcaeb3c39a099895c6dd40f..613a2f163a1c2185eb03f1d9e8504e8fd737a4a4:/stgit/commands/imprt.py diff --git a/stgit/commands/imprt.py b/stgit/commands/imprt.py index fcbe9d3..c8cf42b 100644 --- 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('--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', @@ -82,6 +85,11 @@ def __strip_patch_name(name): 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). @@ -231,6 +239,11 @@ def __import_patch(patch, filename, options): 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: @@ -248,6 +261,9 @@ def __import_patch(patch, filename, options): 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, @@ -288,6 +304,7 @@ def __import_series(filename, options): 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 @@ -317,7 +334,7 @@ def func(parser, options, args): elif filename: patch = os.path.basename(filename) else: - raise CmdException, 'Unknown patch name' + patch = '' if options.strip: patch = __strip_patch_name(patch)