diff: add --ita-[in]visible-in-index

The option --ita-invisible-in-index exposes the "ita_invisible_in_index"
diff flag to outside to allow easier experimentation with this new mode.
The "plan" is to make --ita-invisible-in-index default to keep consistent
behavior with 'status' and 'commit', but a bunch other commands like
'apply', 'merge', 'reset'.... need to be taken into consideration as well.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nguyễn Thái Ngọc Duy 2016-10-24 17:42:20 +07:00 committed by Junio C Hamano
parent 425a28e0a4
commit b42b451919
3 changed files with 15 additions and 1 deletions

View file

@ -570,5 +570,13 @@ endif::git-format-patch[]
--line-prefix=<prefix>:: --line-prefix=<prefix>::
Prepend an additional prefix to every line of output. Prepend an additional prefix to every line of output.
--ita-invisible-in-index::
By default entries added by "git add -N" appear as an existing
empty file in "git diff" and a new file in "git diff --cached".
This option makes the entry appear as a new file in "git diff"
and non-existent in "git diff --cached". This option could be
reverted with `--ita-visible-in-index`. Both options are
experimental and could be removed in future.
For more detailed explanation on these common options, see also For more detailed explanation on these common options, see also
linkgit:gitdiffcore[7]. linkgit:gitdiffcore[7].

4
diff.c
View file

@ -3951,6 +3951,10 @@ int diff_opt_parse(struct diff_options *options,
return parse_submodule_opt(options, arg); return parse_submodule_opt(options, arg);
else if (skip_prefix(arg, "--ws-error-highlight=", &arg)) else if (skip_prefix(arg, "--ws-error-highlight=", &arg))
return parse_ws_error_highlight(options, arg); return parse_ws_error_highlight(options, arg);
else if (!strcmp(arg, "--ita-invisible-in-index"))
options->ita_invisible_in_index = 1;
else if (!strcmp(arg, "--ita-visible-in-index"))
options->ita_invisible_in_index = 0;
/* misc options */ /* misc options */
else if (!strcmp(arg, "-z")) else if (!strcmp(arg, "-z"))

View file

@ -57,7 +57,9 @@ test_expect_success 'i-t-a entry is simply ignored' '
git add -N nitfol && git add -N nitfol &&
git commit -m second && git commit -m second &&
test $(git ls-tree HEAD -- nitfol | wc -l) = 0 && test $(git ls-tree HEAD -- nitfol | wc -l) = 0 &&
test $(git diff --name-only HEAD -- nitfol | wc -l) = 1 test $(git diff --name-only HEAD -- nitfol | wc -l) = 1 &&
test $(git diff --name-only --ita-invisible-in-index HEAD -- nitfol | wc -l) = 0 &&
test $(git diff --name-only --ita-invisible-in-index -- nitfol | wc -l) = 1
' '
test_expect_success 'can commit with an unrelated i-t-a entry in index' ' test_expect_success 'can commit with an unrelated i-t-a entry in index' '