git-add--interactive: never skip files included in index
Make "git add -p" to not skip files that are in index even if they are excluded (by .gitignore etc.). This fixes the contradictory behavior that "git status" and "git commit -a" listed such files as modified, but "git add -p FILENAME" ignored them. Signed-off-by: Pauli Virtanen <pav@iki.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
ac78b00939
commit
b145b211ba
@ -186,7 +186,7 @@ sub list_modified {
|
|||||||
@tracked = map {
|
@tracked = map {
|
||||||
chomp $_;
|
chomp $_;
|
||||||
unquote_path($_);
|
unquote_path($_);
|
||||||
} run_cmd_pipe(qw(git ls-files --exclude-standard --), @ARGV);
|
} run_cmd_pipe(qw(git ls-files --), @ARGV);
|
||||||
return if (!@tracked);
|
return if (!@tracked);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,6 +138,20 @@ test_expect_success 'real edit works' '
|
|||||||
test_cmp expected output
|
test_cmp expected output
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'skip files similarly as commit -a' '
|
||||||
|
git reset &&
|
||||||
|
echo file >.gitignore &&
|
||||||
|
echo changed >file &&
|
||||||
|
echo y | git add -p file &&
|
||||||
|
git diff >output &&
|
||||||
|
git reset &&
|
||||||
|
git commit -am commit &&
|
||||||
|
git diff >expected &&
|
||||||
|
test_cmp expected output &&
|
||||||
|
git reset --hard HEAD^
|
||||||
|
'
|
||||||
|
rm -f .gitignore
|
||||||
|
|
||||||
if test "$(git config --bool core.filemode)" = false
|
if test "$(git config --bool core.filemode)" = false
|
||||||
then
|
then
|
||||||
say 'skipping filemode tests (filesystem does not properly support modes)'
|
say 'skipping filemode tests (filesystem does not properly support modes)'
|
||||||
|
Loading…
Reference in New Issue
Block a user