This option is similar to the one from 'pick'. It only updates the
files already part of the current patch.
Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>
make_option('-s', '--showpatch',
help = 'show the patch content in the editor buffer',
action = 'store_true'),
make_option('-s', '--showpatch',
help = 'show the patch content in the editor buffer',
action = 'store_true'),
+ make_option('--update',
+ help = 'only update the current patch files',
+ action = 'store_true'),
make_option('--undo',
help = 'revert the commit generated by the last refresh',
action = 'store_true'),
make_option('--undo',
help = 'revert the commit generated by the last refresh',
action = 'store_true'),
check_conflicts()
if options.patch:
check_conflicts()
if options.patch:
+ if args or options.update:
raise CmdException, \
'Only full refresh is available with the --patch option'
patch = options.patch
raise CmdException, \
'Only full refresh is available with the --patch option'
patch = options.patch
- if git.local_changes() \
- or not crt_series.head_top_equal() \
+ files = [x[1] for x in git.tree_status(verbose = True)]
+ if args:
+ files = [f for f in files if f in args]
+
+ if files or not crt_series.head_top_equal() \
or options.edit or options.message \
or options.authname or options.authemail or options.authdate \
or options.commname or options.commemail \
or options.edit or options.message \
or options.authname or options.authemail or options.authdate \
or options.commname or options.commemail \
applied = crt_series.get_applied()
between = applied[:applied.index(patch):-1]
pop_patches(between, keep = True)
applied = crt_series.get_applied()
between = applied[:applied.index(patch):-1]
pop_patches(between, keep = True)
+ elif options.update:
+ rev1 = git_id('//bottom')
+ rev2 = git_id('//top')
+ patch_files = git.barefiles(rev1, rev2).split('\n')
+ files = [f for f in files if f in patch_files]
+ if not files:
+ out.info('No modified files for updating patch "%s"' % patch)
+ return
out.start('Refreshing patch "%s"' % patch)
if autoresolved == 'yes':
resolved_all()
out.start('Refreshing patch "%s"' % patch)
if autoresolved == 'yes':
resolved_all()
- crt_series.refresh_patch(files = args,
+ crt_series.refresh_patch(files = files,
message = options.message,
edit = options.edit,
show_patch = options.showpatch,
message = options.message,
edit = options.edit,
show_patch = options.showpatch,