"brian m. carlson" <sand...@crustytoothpaste.net> writes:

>>  - --dereference to control whether to follow symlinks
>
> This is actually surprisingly difficult. The reason I implemented this
> only for no-index mode is because there are actually several places we
> can stat a file in the diff code, and implementing a --dereference
> option that catches all of those cases and getting the option passed
> down to them is non-trivial.

Another thing to worry about is symlinks that point outside the
working tree.  When a tracked content "dir/link" is a symlink to
"/etc/motd", it probably makes sense to open("/etc/motd") and read()
it on the working tree side of the diff, and probably even on the
index side of the diff, but what about obtaining contents for
"dir/link" in a year-old commit under --deference mode?  I am not
sure if it makes sense to read from the filesystem in such a case.

I personally am perfectly fine if this "do not compare readlink(2),
but read contents literally" is limited to the --no-index mode.

Thanks.

Reply via email to