From: Junio C Hamano <hidden> Date: 2016-06-15 22:51:17
David Aguilar [off-list ref] 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.
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
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 :
On Thu, May 19, 2011 at 09:31:54PM -0700, Junio C Hamano wrote:
quoted
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,
From: David Aguilar <hidden> Date: 2016-06-15 22:51:17
On Sat, May 21, 2011 at 11:35:06AM +0200, Frédéric Heitzmann wrote:
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.
I think updating git-difftool--helper.sh to pass a chdir to vim
might be just the thing to do. git-difftool.perl can be
updated to set $GIT_DIFFTOOL_PWD so that the helper can use it
as -c 'cd $GIT_DIFFTOOL_PWD'. I'll see if I can whip up a patch
in a lil bit.
--
David