"brian m. carlson" <sandals@xxxxxxxxxxxxxxxxxxxx> writes: > +test_expect_success SYMLINKS 'diff --no-index --literally with symlinks' ' > + test_write_lines a b c >f1 && > + test_write_lines a d c >f2 && > + ln -s f1 s1 && > + ln -s f2 s2 && > + cat >expect <<-\EOF && > + diff --git a/s1 b/s2 > + --- a/s1 > + +++ b/s2 > + @@ -1,3 +1,3 @@ > + a > + -b > + +d > + c > + EOF > + test_expect_code 1 git diff --no-index --literally s1 s2 >actual && > + test_cmp expect actual > +' This is good as a goal, but the implementation seems to be overly eager to dereference any symlink or non-regular file found in any level of recursion. The use case presented as the justification in the proposed log message, and the explanation in the documentation, suggests that only the paths given from the command line are treated this way. It may make sense to do this as two orthgonal flags. Dereference symlinks and named pipes given from the command line is one use case. Dereference any symlinks encountered during recursion is another. And the latter might be useful even inside a repository as an option, even though the former would never make sense unless running in --no-index mode. Thanks.