Am 24.02.2014 17:55, schrieb Junio C Hamano: > David Aguilar <davvid@xxxxxxxxx> 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@xxxxxxxxx> >> Helped-by: Jens Lehmann <jens.lehmann@xxxxxx> >> Helped-by: John Keeping <john@xxxxxxxxxxxxx> >> Signed-off-by: David Aguilar <davvid@xxxxxxxxx> >> --- > > Looks good; thanks. FWIW: Tested-by: Jens Lehmann <jens.lehmann@xxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html