Re: git difftool does does not respect current working directory
From: David Aguilar <hidden>
Date: 2016-06-15 22:51:17
On Thu, May 19, 2011 at 09:31:54PM -0700, Junio C Hamano wrote:
David Aguilar [off-list ref] writes:quoted
We would have to change the way $GIT_EXTERNAL_DIFF works so that it preserves the current directory and constructs paths relative to it. Patches welcome :-)I am afraild that would break a lot more than difftool. If we really wanted to change the behaviour, the external diff interface needs to export the value of prefix (i.e. what the original subdirectory was), and the script that is spawned as $GIT_EXTERNAL_DIFF (optionally optionally) take it into account, perhaps by cd'ing back to that subdirectory and possibly moving or renaming the temporary files to suit its needs (I think recently we also saw a request to rename the temporary files). Or something like that.
Yup, yup. That's a lot of machinery for a relatively small gain. Simple is simple, simple is good. Thanks for outlining how someone could implement it, though. I won't do it myself but if someone is motivated enough then your email at least gives an idea about how to go about doing it. git-difftool--helper could chdir to $prefix and diff each file with $(git rev-parse --show-cdup)/$path as the path since it may no longer be at the root. This seems very messy so I don't really want to sound too encouraging about going down this route. I probably shouldn't have encouraged looking at the temporary files thing in the other thread either. Thanks, -- David