Re: git difftool does does not respect current working directory
- From
- Frédéric Heitzmann <frederic.heitzmann@gmail.com>
- Date
- May 21, 2011, 09:35 UTC
- Message-ID
- <4DD7874A.2050604@gmail.com>
- In-Reply-To
- <20110520044851.GD13582@gmail.com>
Reading your replies, my understanding is : - difftool is consistent with diff, and chdir to root directory. It is seems indeed very common to have diffs showing from the root directory. - on the overhand, openning gvimdiff via difftool and having a new cwd is for sure not consistent with usual gvim text editing.
I am afraid I am going to need some gvim trick like : $ git difftool -x "gvimdiff -f -d -c 'wincmd l' -c 'cd $PWD' " my_file
Not sure that it is less messy though ;-) If there is no stronger need to adapt git-difftool, for gvimdiff or any other difftool, we could probably settle for it.
Thanks for you help. -- Fred
Le 20/05/2011 06:48, David Aguilar a écrit :
Show 33 quoted lines
> On Thu, May 19, 2011 at 09:31:54PM -0700, Junio C Hamano wrote: >> 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,