Junio C Hamano <gitster@xxxxxxxxx> writes: >> Totally untested, but something along this line... > > Well, probably along that line but not there. I think the patch would be > a lot cleaner to keep the part I touched intact, and instead add an extra > "ls-files -u" that creates %unmerged hash in the way this patch does, > immediately before the last for() loop in the function. And then the loop > can use %unmerged hash to filter the elements. That is, something like this. git-add--interactive.perl | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/git-add--interactive.perl b/git-add--interactive.perl index 8f0839d..ddb2e77 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@ -270,7 +270,7 @@ sub get_empty_tree { # FILE_ADDDEL: is it add/delete between index and file? sub list_modified { - my ($only) = @_; + my ($only, $filter_unmerged) = @_; my (%data, @return); my ($add, $del, $adddel, $file); my @tracked = (); @@ -348,9 +348,26 @@ sub list_modified { } } + my %unmerged; + if ($filter_unmerged) { + for (run_cmd_pipe(qw(git ls-files -u --), @ARGV)) { + chomp $_; + if (/^[0-7]+ [0-9a-f]{40} [0-3] (.*)/) { + my $path = unquote_path($1); + $unmerged{$path} = 1; + } + } + if (%unmerged) { + for (sort keys %unmerged) { + print colored $error_color, "ignoring unmerged: $_\n"; + } + } + } + for (sort keys %data) { - my $it = $data{$_}; + next if exists $unmerged{$_}; + my $it = $data{$_}; if ($only) { if ($only eq 'index-only') { next if ($it->{INDEX} eq 'unchanged'); @@ -1189,7 +1206,7 @@ sub apply_patch_for_checkout_commit { } sub patch_update_cmd { - my @all_mods = list_modified($patch_mode_flavour{FILTER}); + my @all_mods = list_modified($patch_mode_flavour{FILTER}, 'filter-unmerged'); my @mods = grep { !($_->{BINARY}) } @all_mods; my @them; -- 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