Re: [PATCH] diff: add support for reading files literally with --no-index
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 4, 2019, 19:26 UTC
- Message-ID
- <xmqq36q8cjgf.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <20190104025724.GG423984@genre.crustytoothpaste.net>
"brian m. carlson" <sandals@crustytoothpaste.net> writes:
Show 7 quoted lines
>> - --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.