git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Junio C HamanoNext: Frédéric Heitzmann
Message 6 of 21 in “git difftool does does not respect current working directory”
  1. Frédéric HeitzmannMay 14, 2011
  2. Junio C HamanoMay 16, 2011
  3. David AguilarMay 20, 2011
  4. David AguilarMay 20, 2011
  5. Junio C HamanoMay 20, 2011
  6. David AguilarMay 20, 2011
  7. Frédéric HeitzmannMay 21, 2011
  8. David AguilarMay 22, 2011
  9. Junio C HamanoMay 22, 2011
  10. David AguilarMay 22, 2011
  11. 1/3 setup: Provide GIT_PREFIX to built-insDavid Aguilar, May 22, 2011
  12. 2/3 git: Remove handling for GIT_PREFIXDavid Aguilar, May 22, 2011
  13. 3/3 git-mergetool--lib: Make vimdiff retain the current directoryDavid Aguilar, May 22, 2011
  14. Michael J GruberMay 23, 2011
  15. Junio C HamanoMay 23, 2011
  16. Ævar Arnfjörð BjarmasonMay 23, 2011
  17. David AguilarMay 25, 2011
  18. David AguilarMay 23, 2011
  19. Michael J GruberMay 23, 2011
  20. Junio C HamanoMay 23, 2011
  21. Michael J GruberMay 24, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.