It is sometimes useful to see changes in their smallest possible form, rather than complete hunks with overlapping context. You can do this manually, of course, with the 's'plit hunk command. But when filtering hunks, you may want to pre-split to give your filtering a finer granularity. This patch adds only the perl infrastructure; to expose this to the user, the various callers of add--interactive need to pass the new option through to the perl script. Signed-off-by: Jeff King <peff@xxxxxxxx> --- git-add--interactive.perl | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/git-add--interactive.perl b/git-add--interactive.perl index 917b2a9..41c7c6f 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@ -88,6 +88,7 @@ my $patch_mode; my $patch_mode_revision; my @patch_mode_hunk_filter; my $patch_mode_negate_filter; +my $patch_mode_autosplit; sub apply_patch; sub apply_patch_for_checkout_commit; @@ -1291,6 +1292,10 @@ sub patch_update_file { my $path = shift; my ($head, @hunk) = parse_diff($path); + if ($patch_mode_autosplit) { + @hunk = map { split_hunk($_->{TEXT}, $_->{DISPLAY}) } @hunk; + } + if (@patch_mode_hunk_filter) { @hunk = grep { want_hunk($_) } @hunk; return unless @hunk; @@ -1594,6 +1599,9 @@ sub process_args { elsif ($ARGV[0] eq '--negate-hunk-filter') { $patch_mode_negate_filter = 1; } + elsif ($ARGV[0] eq '--split-hunks') { + $patch_mode_autosplit = 1; + } else { last; } -- 1.7.5.4.31.ge4d5e -- 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