Srinidhi Kaushik <shrinidhi.kaushik@xxxxxxxxx> writes: > The `diff-files' command and related commands which call the function > `cmd_diff_files()', consider the "intent-to-add" files as a part of the > index when comparing the work-tree against it. This was previously > addressed in commits [1] and [2] by turning the option > `--ita-invisible-in-index' (introduced in [3]) on by default. > > For `diff-files' (and `add -p' as a consequence) to show the i-t-a > files as as new, `ita_invisible_in_index' will be enabled by default > here as well. > > [1] 0231ae71d3 (diff: turn --ita-invisible-in-index on by default, > 2018-05-26) > [2] 425a28e0a4 (diff-lib: allow ita entries treated as "not yet exist > in index", 2016-10-24) > [3] b42b451919 (diff: add --ita-[in]visible-in-index, 2016-10-24) > > Signed-off-by: Srinidhi Kaushik <shrinidhi.kaushik@xxxxxxxxx> > --- Thanks. > -test_expect_success 'diff-files/diff-cached shows ita as new/not-new files' ' > +test_expect_success 'i-t-a files shown as new for "diff", "diff-files"; not-new for "diff --cached"' ' > git reset --hard && > + : >empty && > + content="foo" && > + echo "$content" >not-empty && > + > + hash_e=$(git hash-object empty) && > + hash_n=$(git hash-object not-empty) && > + hash_t=$(git hash-object -t tree /dev/null) && > + > + cat >expect.diff_p <<-EOF && > + diff --git a/empty b/empty > + new file mode 100644 > + index 0000000..$(git rev-parse --short $hash_e) > + diff --git a/not-empty b/not-empty > + new file mode 100644 > + index 0000000..$(git rev-parse --short $hash_n) > + --- /dev/null > + +++ b/not-empty > + @@ -0,0 +1 @@ > + +$content > + EOF > + cat >expect.diff_s <<-EOF && > + create mode 100644 empty > + create mode 100644 not-empty > + EOF > + cat >expect.diff_a <<-EOF && > + :000000 100644 0000000 $(git rev-parse --short $hash_t) A$(printf "\t")empty > + :000000 100644 0000000 $(git rev-parse --short $hash_t) A$(printf "\t")not-empty This is good, but just FYI you did not have to use printf --- "<<-" treats only leading tab specially, and not in the middle of a line. > + EOF > + > + git add -N empty not-empty && OK. So with two paths... > + > + git diff >actual && > + test_cmp expect.diff_p actual && ... the patch output of "git diff", and > git diff --summary >actual && ... the summary part, and > - echo " create mode 100644 new-ita" >expected && > - test_cmp expected actual && > - git diff --cached --summary >actual2 && > - test_must_be_empty actual2 > -' > + test_cmp expect.diff_s actual && > + > + git diff-files -p >actual && > + test_cmp expect.diff_p actual && > > + git diff-files --abbrev >actual && > + test_cmp expect.diff_a actual && ... the same for "diff-files" and > + git diff --cached >actual && ... "diff -cached" are all checked. Looking good. > + test_must_be_empty actual > +' > > test_expect_success '"diff HEAD" includes ita as new files' ' > git reset --hard && > -- > 2.27.0