Subject: Re: git difftool does does not respect current working directory

From: David Aguilar <[email-masked]>
Date: Thu, 19 May 2011 21:48:52 -0700

On Thu, May 19, 2011 at 09:31:54PM -0700, Junio C Hamano wrote:
> David Aguilar <[email-masked]> 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