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

Re: [PATCH] difftool: support repositories with .git-files

From
Jens Lehmann <jens.lehmann@web.de>
Date
Feb 24, 2014, 21:10 UTC
Message-ID
<530BB548.3050603@web.de>
In-Reply-To
<xmqqr46s9yzx.fsf@gitster.dls.corp.google.com>
Am 24.02.2014 17:55, schrieb Junio C Hamano:
Show 24 quoted lines
> David Aguilar <davvid@gmail.com> writes:
> 
>> Modern versions of "git submodule" use .git-files to setup the
>> submodule directory.  When run in a "git submodule"-created
>> repository "git difftool --dir-diff" dies with the following
>> error:
>>
>> 	$ git difftool -d HEAD~
>> 	fatal: This operation must be run in a work tree
>> 	diff --raw --no-abbrev -z HEAD~: command returned error: 128
>>
>> core.worktree is relative to the .git directory but the logic
>> in find_worktree() does not account for it.
>>
>> Use `git rev-parse --show-toplevel` to find the worktree so that
>> the dir-diff feature works inside a submodule.
>>
>> Reported-by: Gábor Lipták <gabor.liptak@gmail.com>
>> Helped-by: Jens Lehmann <jens.lehmann@web.de>
>> Helped-by: John Keeping <john@keeping.me.uk>
>> Signed-off-by: David Aguilar <davvid@gmail.com>
>> ---
> 
> Looks good; thanks.
FWIW:
Tested-by: Jens Lehmann <jens.lehmann@web.de>
What about squashing this in to detect any future regressions?
diff --git a/t/t7800-difftool.sh b/t/t7800-difftool.sh
index 2418528..d86ad68 100755
--- a/t/t7800-difftool.sh
+++ b/t/t7800-difftool.sh
@@ -434,4 +434,12 @@ test_expect_success PERL 'difftool --no-symlinks detects conflict ' '
 	)
 '

+test_expect_success PERL 'difftool properly honours gitlink and core.worktree' '
+	git submodule add ./. submod/ule &&
+	(
+		cd submod/ule &&
+		git difftool --tool=echo  --dir-diff --cached
+	)
+'
+
 test_done
Previous: Junio C HamanoNext: Junio C Hamano
Message 3 of 8 in “difftool: support repositories with .git-files”
  1. difftool: support repositories with .git-filesDavid Aguilar, Feb 24, 2014
  2. Junio C HamanoFeb 24, 2014
  3. Jens LehmannFeb 24, 2014
  4. Junio C HamanoFeb 25, 2014
  5. Jens LehmannFeb 25, 2014
  6. Junio C HamanoFeb 25, 2014
  7. Jens LehmannFeb 27, 2014
  8. t7800: add a difftool test for .git-filesDavid Aguilar, Mar 5, 2014

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.