From: Jens Lehmann <Jens.Lehmann@web.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: Richard Hartmann <richih.mailinglist@gmail.com>,
Git List <git@vger.kernel.org>
Subject: Re: git submodule vs GIT_WORK_TREE
Date: Tue, 26 Jun 2012 20:27:24 +0200 [thread overview]
Message-ID: <4FE9FF0C.8050409@web.de> (raw)
In-Reply-To: <7vobo6cazk.fsf@alter.siamese.dyndns.org>
Am 26.06.2012 18:07, schrieb Junio C Hamano:
> Richard Hartmann <richih.mailinglist@gmail.com> writes:
>
>> As you are most likely aware, `git submodule` allows you to access a
>> separate git repository in a sub-directory, e.g. $submodule, while
>> $GIT_WORK_TREE forces git to operate in a specific directory. Combine
>> the two and the result is less than ideal. git is forced to operate in
>> $GIT_WORK_TREE while it should operate on $GIT_WORK_TREE/$submodule,
>> instead.
Richard, could you please tell us what git commands behave strange
in what way and what your expectations were? A short test shows e.g.
"git submodule foreach" operates on $(pwd)/submodule even though
GIT_WORK_TREE is set while at the same time git status shows the same
submodule as missing because it is looking for it in $GIT_WORK_TREE.
Is that what you are talking about?
> The end user should not be asked to anything special.
>
> When the user exports GIT_WORK_TREE to tell git that the root of the
> working tree the user wants to work on resides there (which is
> needed when the user exports GIT_DIR to tell git that the user wants
> to work on that repository), that wish obviously applies only to
> that repository. If git decides to visit the working tree of a
> different repository (e.g. a checkout of a submodule bound to the
> project GIT_WORK_TREE points at), even if it is done in response to
> the user action (e.g. like passing "--recurse-submodules" option),
> it should adjust GIT_WORK_TREE and GIT_DIR to be appropriate for
> operations in the submodule repository while doing so. If the more
> recent "recursive" behaviour forgets to do so, it simply is a bug.
I'm not sure what you mean by "appropriate for operations in the
submodule repository". Should the submodule work tree be searched
for under $GIT_WORK_TREE of the superproject or under $(pwd)?
As far as I can see all submodule code consistently clears all
environment variables used by git before descending into a
submodule (at least since February 2010 and 5ce9086dd). Maybe we
should change that so it sets the GIT_WORK_TREE environment to
"$GIT_WORK_TREE/submodule" to be consistent?
next prev parent reply other threads:[~2012-06-26 18:27 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-26 12:28 git submodule vs GIT_WORK_TREE Richard Hartmann
2012-06-26 16:07 ` Junio C Hamano
2012-06-26 18:27 ` Jens Lehmann [this message]
2012-06-26 19:51 ` Junio C Hamano
2012-06-26 22:30 ` Jens Lehmann
2012-06-26 22:53 ` Junio C Hamano
2012-06-29 8:43 ` Richard Hartmann
2012-06-29 20:03 ` Junio C Hamano
2012-06-29 20:23 ` Junio C Hamano
2012-06-29 21:03 ` Junio C Hamano
2012-07-01 10:34 ` Richard Hartmann
2012-07-02 8:22 ` Junio C Hamano
2012-06-29 9:10 ` Richard Hartmann
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=4FE9FF0C.8050409@web.de \
--to=jens.lehmann@web.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=richih.mailinglist@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.