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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.