Hi Jens, So "git status" says: liptak@liptak-kubuntu:~/Projects/MAIN_MODULE/platform/SUBMODULE [master]$ git status # On branch master # Your branch is up-to-date with 'origin/master'. # # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: xxxxxx.java # modified: xxxxxxx.java # ... # ... # ... # ... # ... # no changes added to commit (use "git add" and/or "git commit -a") git config core.worktree gives back: "../../../../platform/SUBMODULE" The submodule was inited simply with "git submodule init" + "git.submodule update" MAINMODULE/.gitsubmodules file contains similar entry: [submodule "platform/SUBMODULE"] path = platform/SUBMODULE url = ssh://git@somehost/foo/bar.git MAINMODULE/.git/config: [submodule "platform/SUBMODULE"] url = ssh://git@somehost/foo/bar.git MAINMODULE/platform/SUBMODULE/.git: gitdir: ../../.git/modules/platform/SUBMODULE MAINMODULE/.git/modules/platform/SUBMODULE/config: [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true worktree = ../../../../platform/SUBMODULE [remote "origin"] url = ssh://git@somehost/foo/bar.git fetch = +refs/heads/*:refs/remotes/origin/* So for me it seems that somehow the relative path inside MAINMODULE/.git/modules/platform/SUBMODULE/config gets configuread wrong during submodule init+update. I tried to update the MAINMODULE/.git/modules/platform/SUBMODULE/config to contain ../../platform/SUBMODULE as worktree path, then meld was correctly started, but the compare tree was not usable. For file changes it displayed always: XXXXX.java: Dangling symlink. So this is still not a complete solution somehow. Regards, Gábor Lipták 2014-02-07 Jens Lehmann <Jens.Lehmann@xxxxxx>: > Am 07.02.2014 10:15, schrieb Gábor Lipták: >> I think I have found a bug related to submodules and directory diff. >> See the details at hXXp://stackoverflow.com/q/21623155/337621. > > Let's inline the recipe one finds after decrypting this link: > > ~/Projects/MAINMODULE/platform/SUBMODULE [master]$ git difftool -tool=meld --dir-diff --cached > fatal: Could not switch to '../../../../platform/': No such file or directory > diff --raw --no-abbrev -z --cached: command returned error: 128 > ~/Projects/MAINMODULE/platform/SUBMODULE [master]$ cd .. > ~/Projects/MAINMODULE/platform [master]$ cd .. > ~/Projects/MAINMODULE [master]$ git difftool -tool=meld --dir-diff --cached > // NO PROBLEM, works. > ~/Projects/MAINMODULE [master]$ git version > git version 1.8.4 > > >> If you need any further details, just ask. > > - Does this only happen when you use difftool? E.g. what does > "git status" inside the submodule say? > > - What does "git config core.worktree" print when run in the > submodule? -- 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