On Wed, Sep 27, 2017 at 06:09:25PM -0400, Jeff King wrote: > > diff --git a/t/t4016-diff-quote.sh b/t/t4016-diff-quote.sh > > index 9c48e5c2c9..514056dd10 100755 > > --- a/t/t4016-diff-quote.sh > > +++ b/t/t4016-diff-quote.sh > > @@ -30,6 +30,7 @@ test_expect_success setup ' > > git add . && > > git commit -m initial && > > git mv "$P0.0" "R$P0.0" && > > + chmod a+x "R$P0.0" && > > git mv "$P0.1" "R$P1.0" && > > git mv "$P0.2" "R$P2.0" && > > git mv "$P0.3" "R$P3.0" && > > Won't this chmod be a problem for platforms without an executable bit? > I think you'd need to use "update-index --chmod=+x" here, or require the > FILEMODE prereq. > > The whole script is marked as !MINGW, so that makes it less of a > problem, but it's still possible have !FILEMODE on a Linux system, if > you're on a funny filesystem. That also seems like a good reason to make > sure this is in a script which is run more widely, since Windows folks > would want to run this test, too. The most appropriate place seems like t4013. I tried adding to its big list of tested formats, but it's quite fragile. The patch below is what I came up with, but it still needs updated to cover the cases which call "log --all". I think we'd do better to just do a set of new tests at the end (or even a new test script for diffing mode changes in various formats). -- >8 -- diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh index d09acfe48e..c515e3e53f 100755 --- a/t/t4013-diff-various.sh +++ b/t/t4013-diff-various.sh @@ -90,6 +90,14 @@ test_expect_success setup ' git commit -m "Rearranged lines in dir/sub" && git checkout master && + GIT_AUTHOR_DATE="2006-06-26 00:06:00 +0000" && + GIT_COMMITTER_DATE="2006-06-26 00:06:00 +0000" && + export GIT_AUTHOR_DATE GIT_COMMITTER_DATE && + git checkout -b mode initial && + git update-index --chmod=+x file0 && + git commit -m "update mode" && + git checkout -f master && + git config diff.renames false && git show-branch @@ -192,6 +200,10 @@ diff-tree --pretty side diff-tree --pretty -p side diff-tree --pretty --patch-with-stat side +diff-tree initial mode +diff-tree --stat initial mode +diff-tree --summary initial mode + diff-tree master diff-tree -p master diff-tree -p -m master diff --git a/t/t4013/diff.diff-tree_--stat_initial_mode b/t/t4013/diff.diff-tree_--stat_initial_mode new file mode 100644 index 0000000000..0e5943c2c6 --- /dev/null +++ b/t/t4013/diff.diff-tree_--stat_initial_mode @@ -0,0 +1,4 @@ +$ git diff-tree --stat initial mode + file0 | 0 + 1 file changed, 0 insertions(+), 0 deletions(-) +$ diff --git a/t/t4013/diff.diff-tree_--summary_initial_mode b/t/t4013/diff.diff-tree_--summary_initial_mode new file mode 100644 index 0000000000..25846b6af8 --- /dev/null +++ b/t/t4013/diff.diff-tree_--summary_initial_mode @@ -0,0 +1,3 @@ +$ git diff-tree --summary initial mode + mode change 100644 => 100755 file0 +$ diff --git a/t/t4013/diff.diff-tree_initial_mode b/t/t4013/diff.diff-tree_initial_mode new file mode 100644 index 0000000000..c47c09423e --- /dev/null +++ b/t/t4013/diff.diff-tree_initial_mode @@ -0,0 +1,3 @@ +$ git diff-tree initial mode +:100644 100755 01e79c32a8c99c557f0757da7cb6d65b3414466d 01e79c32a8c99c557f0757da7cb6d65b3414466d M file0 +$