From: Jens Lehmann <Jens.Lehmann@web.de>
To: "Gábor Lipták" <gabor.liptak@gmail.com>, git@vger.kernel.org
Cc: David Aguilar <davvid@gmail.com>
Subject: Re: Fwd: Git Directory Diff for submodule
Date: Thu, 20 Feb 2014 21:03:06 +0000 [thread overview]
Message-ID: <53066D8A.6070909@web.de> (raw)
In-Reply-To: <CAN-m_UnSqTnLydyVF2TLxOia9vzmQr9e4+xWh8aVNBosfCq5nA@mail.gmail.com>
Sorry for the late reply, but here we go ...
Am 10.02.2014 07:33, schrieb Gábor Lipták:
> 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"
Which looks a bit strange but is perfectly ok for a repository
that uses a gitfile, as the core.worktree setting is relative
to the git directory the gitfile references and not the directory
the gitfile lives in. A quick glance at the find_worktree
subroutine in git-difftool.perl makes me think that difftool is
not aware of that fact. David, does that make sense?
> 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@web.de>:
>> 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@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2014-02-20 21:03 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAN-m_UmNudmxJnA95h1nYqi7GGxtzKqqpgFHmJZ+MTnxRoEd6g@mail.gmail.com>
[not found] ` <CAN-m_UnQ7Yzuq7n6mxmsd3XcfLSVxMdnLiGFDiN1Ph3ZiFqwew@mail.gmail.com>
2014-02-07 9:15 ` Fwd: Git Directory Diff for submodule Gábor Lipták
2014-02-07 20:38 ` Jens Lehmann
2014-02-10 7:33 ` Gábor Lipták
2014-02-20 21:03 ` Jens Lehmann [this message]
2014-02-20 22:41 ` David Aguilar
2014-02-21 9:27 ` John Keeping
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53066D8A.6070909@web.de \
--to=jens.lehmann@web.de \
--cc=davvid@gmail.com \
--cc=gabor.liptak@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).