This allows folding of specific files only. Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxxxx> --- stgit/commands/pick.py | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/stgit/commands/pick.py b/stgit/commands/pick.py index ee08c01..b0e9114 100644 --- a/stgit/commands/pick.py +++ b/stgit/commands/pick.py @@ -52,6 +52,8 @@ options = [ short = 'Fold the commit object into the current patch'), opt('--update', action = 'store_true', short = 'Like fold but only update the current patch files'), + opt('-f', '--files', action = 'append', + short = 'Only fold the given files'), opt('--unapplied', action = 'store_true', short = 'Keep the patch unapplied')] @@ -83,8 +85,11 @@ def __pick_commit(commit_id, patchname, options): out.start('Folding commit %s' % commit_id) # try a direct git apply first - if not git.apply_diff(bottom, top): - git.merge_recursive(bottom, git.get_head(), top) + if not git.apply_diff(bottom, top, files = options.files): + if options.files: + raise CmdException, 'Patch folding failed' + else: + git.merge_recursive(bottom, git.get_head(), top) out.done() elif options.update: @@ -152,6 +157,9 @@ def func(parser, options, args): if not args: parser.error('incorrect number of arguments') + if options.files and not options.fold: + parser.error('--file can only be specified with --fold') + if not options.unapplied: check_local_changes() check_conflicts() -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html