From: Jens Lehmann <Jens.Lehmann@web.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jehan Bing <jehan@orb.com>, git@vger.kernel.org
Subject: Re: [BUG] Fail to add a module in a subdirectory if module is already cloned
Date: Tue, 24 Jan 2012 22:44:34 +0100 [thread overview]
Message-ID: <4F1F2642.1070707@web.de> (raw)
In-Reply-To: <7vhazk3ibk.fsf@alter.siamese.dyndns.org>
Am 24.01.2012 22:24, schrieb Junio C Hamano:
> Jens Lehmann <Jens.Lehmann@web.de> writes:
>
>> The reason for this bug seems to be that in module_clonse() the name is
>> not properly initialized for added submodules (it gets set to the path
>> later), so the correct amount of leading "../"s for the git directory
>> is not computed properly. The attached diff fixes that for me, I will
>> send a patch as soon as I have extended a test case for this breakage.
>>
>> diff --git a/git-submodule.sh b/git-submodule.sh
>> index 3adab93..9bb2e13 100755
>> --- a/git-submodule.sh
>> +++ b/git-submodule.sh
>> @@ -131,6 +131,7 @@ module_clone()
>> gitdir=
>> gitdir_base=
>> name=$(module_name "$path" 2>/dev/null)
>> + test -n "$name" || name="$path"
>
> This somehow smells like sweeping a problem under the rug. Why doesn't
> module_name find the already registered path in the first place?
>
> I see "module_name" calls "git config -f .gitmodules" and I do not see any
> cd_to_toplevel in git-submodule.sh that would ensure this call to access
> the gitmodules file at the top-level of the superproject. Is that the real
> reason why it is not finding what it should be finding?
Nope, it's the fact that the .gitmodules file doesn't contain this name
because the branch was rewound. Please see my post where I proposed the
same change for a slightly different problem:
http://permalink.gmane.org/gmane.comp.version-control.git/187823
(just fast forward to the first hunk of my diff at the end)
I just didn't realize back then that this is needed even without the
other changes to work properly. The possibly missing cd_to_toplevel is
another problem, the OP started the submodule add in the top level
directory anyways.
next prev parent reply other threads:[~2012-01-24 21:44 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-24 19:11 [BUG] Fail to add a module in a subdirectory if module is already cloned Jehan Bing
2012-01-24 21:10 ` Jens Lehmann
2012-01-24 21:13 ` Jens Lehmann
2012-01-24 21:24 ` Junio C Hamano
2012-01-24 21:44 ` Jens Lehmann [this message]
2012-01-24 22:14 ` Jens Lehmann
2012-01-24 22:38 ` Junio C Hamano
2012-01-24 21:49 ` [PATCH] submodule add: fix breakage when re-adding a deep submodule Jens Lehmann
2012-01-25 1:48 ` Jehan Bing
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=4F1F2642.1070707@web.de \
--to=jens.lehmann@web.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jehan@orb.com \
/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).