Re: git difftool does does not respect current working directory
- From
David Aguilar <davvid@gmail.com>
- Date
- May 20, 2011, 04:48 UTC
- Message-ID
- <20110520044851.GD13582@gmail.com>
- In-Reply-To
- <7vwrhm3scl.fsf@alter.siamese.dyndns.org>
On Thu, May 19, 2011 at 09:31:54PM -0700, Junio C Hamano wrote:
Show 17 quoted lines
> David Aguilar <davvid@gmail.com> writes: > > > 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