From: Jens Lehmann <Jens.Lehmann@web.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: Orgad Shaneh <orgads@gmail.com>, git@vger.kernel.org
Subject: Re: [PATCH] submodule: configure submodule.<name>.path on add and init
Date: Tue, 25 Sep 2012 22:58:43 +0200 [thread overview]
Message-ID: <50621B03.6010805@web.de> (raw)
In-Reply-To: <7vmx0fxicf.fsf@alter.siamese.dyndns.org>
Am 24.09.2012 22:43, schrieb Junio C Hamano:
> Jens Lehmann <Jens.Lehmann@web.de> writes:
>
>> Am 24.09.2012 21:30, schrieb Orgad Shaneh:
>>> In order to read diff options for a submodule, its path must be configured
>>> ---
>>> git-submodule.sh | 2 ++
>>> 1 file changed, 2 insertions(+)
>>>
>>> diff --git a/git-submodule.sh b/git-submodule.sh
>>> index 3e2045e..f97bb62 100755
>>> --- a/git-submodule.sh
>>> +++ b/git-submodule.sh
>>> @@ -359,6 +359,7 @@ Use -f if you really want to add it." >&2
>>> esac
>>> ) || die "$(eval_gettext "Unable to checkout submodule '\$sm_path'")"
>>> fi
>>> + git config submodule."$sm_path".path "$sm_path"
>>> git config submodule."$sm_path".url "$realrepo"
>>>
>>> git add $force "$sm_path" ||
>>> @@ -476,6 +477,7 @@ cmd_init()
>>> url=$(resolve_relative_url "$url") || exit
>>> ;;
>>> esac
>>> + git config submodule."$name".path "$name" ||
>>> git config submodule."$name".url "$url" ||
>>> die "$(eval_gettext "Failed to register url for submodule path '\$sm_path'")"
>>
>> Nack. The path must only be configured in .gitmodules or we'll
>> never be able to rename the submodule directory.
>
> That sounds sensible on the surface, and the rejection of this is
> probably the right thing to do, but then how would the name/path
> mapping work without .gitmodules? Historically, you did not have to
> have a .gitmodules in-tree at all in order to use submodules
> locally, but if discovery of submodule.$name.ignore depends on
> having the in-tree .gitmodules file, that sounds like a minor
> regression to me.
AFAIK the name/path mapping was added to enable moving submodules
around in the work tree without having to adapt its $GITDIR/config
entries every time you checkout a commit where the submodule's work
tree is moved someplace else inside the superproject's work tree.
Nowadays we also use that to consistently store the submodule's
.git directory under "modules/<name>" inside the superproject's
.git directory no matter what its current path is.
You still don't need a .gitmodules file to use submodules locally,
but then moving around these submodules is not - and has never
been - that easy. To use the ignore setting without a .gitmodules
file you'll just have to set both submodule.$name.ignore and
submodule.$name.path (to provide the mapping, in most cases path
and name will simply be the same) in your $GITDIR/config and
everything will work just fine.
next prev parent reply other threads:[~2012-09-25 20:59 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-24 19:30 [PATCH] submodule: configure submodule.<name>.path on add and init Orgad Shaneh
2012-09-24 19:32 ` Orgad Shaneh
2012-09-24 19:57 ` Jens Lehmann
2012-09-24 20:43 ` Junio C Hamano
2012-09-25 20:58 ` Jens Lehmann [this message]
-- strict thread matches above, loose matches on Subject: below --
2012-09-24 19:32 Orgad Shaneh
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=50621B03.6010805@web.de \
--to=jens.lehmann@web.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=orgads@gmail.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 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.