From: David Aguilar <davvid@gmail.com>
To: "Frédéric Heitzmann" <frederic.heitzmann@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: git difftool does does not respect current working directory
Date: Thu, 19 May 2011 20:59:00 -0700 [thread overview]
Message-ID: <20110520035856.GA13582@gmail.com> (raw)
In-Reply-To: <7v1uzznr09.fsf@alter.siamese.dyndns.org>
Hello,
On Sun, May 15, 2011 at 10:39:18PM -0700, Junio C Hamano wrote:
> Frédéric Heitzmann <frederic.heitzmann@gmail.com> writes:
>
> > Unfortunately, 'git difftool' does not keep the current working directory while
> > launching gvimdiff.
> >
> > => Is it done on purpose ?
> > If not, it is probably a good idea to fix this.
>
> I will not comment on "on purpose?" part, as I do not use difftool myself.
>
> But the right set of questions to ask is not the above, but these:
>
> - Is it on purpose that difftool runs its diff viewer from the top of the
> working tree?
>
> - Is there any existing user who depends on that current behaviour? IOW,
> would anybody suffer if difftool suddenly starts to run the diff viewer
> from the subdirectory that the user started "git difftool" from?
>
> If the answers to both of them are No, then it might be a good idea to
> change the behaviour.
Another thing to consider is ensuring that there is a
consistency between 'diff' and 'difftool'.
When you run 'git diff' from a subdirectory git will show you
a diff against the entire tree. In this respect, 'difftool' is
consistent. In that sense, yes, this is very much "on purpose".
Is there something that isn't working because of the internal
chdir? I'm not sure if you want to change the chdir behavior
for aesthetic purposes or if there's something it is
preventing you from doing. If what you're trying to accomplish
is to have 'difftool' only show you changes within the current
directory then you can accomplish that today by passing ".",
e.g. "git difftool ."
Implementation details:
difftool is a thin wrapper around 'git diff'. Specifically,
it is implemented as a $GIT_EXTERNAL_DIFF script which means
that it inherits most of its behavior from 'diff'.
The "chdir to root" behavior actually happens inside of
'git diff'.
Can we can change the behavior? Sure, anything is possible.
The question is *should* we change the behavior?
Even though I highly doubt there are any scripts relying on it,
I don't think we gain much by doing so. The downside to
changing it is that we lose consistency, which is not so good.
I hope that's a compelling enough argument :-)
I hope the "." thing helps.
Cheers,
--
David
next prev parent reply other threads:[~2011-05-20 3:59 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-14 14:25 git difftool does does not respect current working directory Frédéric Heitzmann
2011-05-16 5:39 ` Junio C Hamano
2011-05-20 3:59 ` David Aguilar [this message]
2011-05-20 4:10 ` David Aguilar
2011-05-20 4:31 ` Junio C Hamano
2011-05-20 4:48 ` David Aguilar
2011-05-21 9:35 ` Frédéric Heitzmann
2011-05-22 6:14 ` David Aguilar
2011-05-22 6:30 ` Junio C Hamano
2011-05-22 6:50 ` David Aguilar
2011-05-22 9:57 ` [PATCH 1/3] setup: Provide GIT_PREFIX to built-ins David Aguilar
2011-05-22 9:57 ` [PATCH 2/3] git: Remove handling for GIT_PREFIX David Aguilar
2011-05-22 9:57 ` [PATCH 3/3] git-mergetool--lib: Make vimdiff retain the current directory David Aguilar
2011-05-23 6:36 ` Michael J Gruber
2011-05-23 19:59 ` Junio C Hamano
2011-05-23 12:09 ` [PATCH 1/3] setup: Provide GIT_PREFIX to built-ins Ævar Arnfjörð Bjarmason
2011-05-25 4:19 ` David Aguilar
[not found] ` <1306058055-93672-1-git-send-email-davvid@gmail.com>
[not found] ` <4DDA0044.2060207@drmicha.warpmail.net>
2011-05-23 8:40 ` David Aguilar
2011-05-23 9:58 ` Michael J Gruber
2011-05-23 16:43 ` Junio C Hamano
2011-05-24 7:23 ` Michael J Gruber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110520035856.GA13582@gmail.com \
--to=davvid@gmail.com \
--cc=frederic.heitzmann@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.