Am 24.02.2014 17:55, schrieb Junio C Hamano:
> David Aguilar <dav...@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.lip...@gmail.com>
>> Helped-by: Jens Lehmann <jens.lehm...@web.de>
>> Helped-by: John Keeping <j...@keeping.me.uk>
>> Signed-off-by: David Aguilar <dav...@gmail.com>
>> ---
> 
> Looks good; thanks.


FWIW:
Tested-by: Jens Lehmann <jens.lehm...@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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to