"brian m. carlson" <sand...@crustytoothpaste.net> 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.


Reply via email to