X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/93a4d1ae150eeb634b45ad4a688088de8cb1956e..d0bfda1a1a21cb1f4ef661051199f98fd4869752:/stgit/commands/pick.py diff --git a/stgit/commands/pick.py b/stgit/commands/pick.py index e932cf0..3ff6269 100644 --- a/stgit/commands/pick.py +++ b/stgit/commands/pick.py @@ -39,6 +39,9 @@ options = [make_option('-n', '--name', action = 'store_true'), make_option('--fold', help = 'fold the commit object into the current patch', + action = 'store_true'), + make_option('--update', + help = 'like fold but only update the current patch files', action = 'store_true')] @@ -54,7 +57,7 @@ def func(parser, options, args): commit_str = args[0] - if options.fold: + if options.fold or options.update: if not crt_series.get_current(): raise CmdException, 'No patches applied' else: @@ -85,6 +88,18 @@ def func(parser, options, args): git.merge(bottom, git.get_head(), top) print 'done' + elif options.update: + rev1 = git_id('//bottom') + rev2 = git_id('//top') + files = git.barefiles(rev1, rev2).split('\n') + + print 'Updating with commit %s...' % commit_id, + sys.stdout.flush() + + if not git.apply_diff(bottom, top, files = files): + raise CmdException, 'Patch updating failed' + + print 'done' else: message = commit.get_log() author_name, author_email, author_date = \