Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

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

From: Jens Lehmann <hidden>
Date: 2016-06-15 22:59:59
Subsystem: the rest · Maintainer: Linus Torvalds

Possibly related (same subject, not in this thread)

Am 24.02.2014 17:55, schrieb Junio C Hamano:
David Aguilar [off-list ref] writes:
quoted
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 <redacted>
Helped-by: Jens Lehmann [off-list ref]
Helped-by: John Keeping [off-list ref]
Signed-off-by: David Aguilar <redacted>
---
Looks good; thanks.

FWIW:
Tested-by: Jens Lehmann <redacted>

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help