From: Junio C Hamano <gitster@pobox•com>
To: Stefan Beller <sbeller@google•com>
Cc: Uma Srinivasan <usrinivasan@twitter•com>,
Jacob Keller <jacob.keller@gmail•com>,
Git Mailing List <git@vger•kernel.org>,
Jens Lehmann <Jens.Lehmann@web•de>,
Heiko Voigt <hvoigt@hvoigt•net>
Subject: Re: git submodules implementation question
Date: Thu, 01 Sep 2016 12:19:44 -0700 [thread overview]
Message-ID: <xmqqa8frwhpr.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <CAGZ79kZnhNVBy6Oqt=x8m0jZj_tGNkMPPBBr+aL6DToOYtv9vQ@mail.gmail.com> (Stefan Beller's message of "Thu, 1 Sep 2016 11:37:30 -0700")
Stefan Beller <sbeller@google•com> writes:
>> The final version needs to be accompanied with tests to show the
>> effect of this change for callers. A test would set up a top-level
>> and submodule, deliberately break submodule/.git/ repository and
>> show what breaks and how without this change.
>
> Tests are really good at providing this context as well, or to communicate
> the actual underlying problem, which is not quite clear to me.
> That is why I refrained from jumping into the discussion as I think the
> first few emails were dropped from the mailing list and I am missing context.
I do not know where you started reading, but the gist of it is that
submodule.c spawns subprocess to run in the submodule's context by
assuming that chdir'ing into the <path> of the submodule and running
it (i.e. cp.dir set to <path> to drive start_command(&cp)) is
sufficient. When <path>/.git (either it is a directory itself or it
points at a directory in .git/module/<name> in the superproject) is
a corrupt repository, running "git -C <path> command" would try to
auto-detect the repository, because it thinks <path>/.git is not a
repository and it thinks it is not at the top-level of the working
tree, and instead finds the repository of the top-level, which is
almost never what we want.
next prev parent reply other threads:[~2016-09-01 20:55 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-28 23:24 git submodules implementation question Uma Srinivasan
2016-08-29 20:03 ` Junio C Hamano
2016-08-29 21:03 ` Uma Srinivasan
2016-08-29 21:09 ` Junio C Hamano
2016-08-29 21:13 ` Uma Srinivasan
2016-08-29 23:04 ` Uma Srinivasan
2016-08-29 23:15 ` Junio C Hamano
2016-08-29 23:34 ` Uma Srinivasan
2016-08-30 0:02 ` Jacob Keller
2016-08-30 0:12 ` Uma Srinivasan
2016-08-30 6:09 ` Jacob Keller
2016-08-30 6:23 ` Jacob Keller
2016-08-30 17:40 ` Uma Srinivasan
2016-08-30 17:53 ` Junio C Hamano
2016-08-31 2:54 ` Uma Srinivasan
2016-08-31 16:42 ` Junio C Hamano
2016-08-31 18:40 ` Uma Srinivasan
2016-08-31 18:44 ` Junio C Hamano
2016-08-31 18:58 ` Uma Srinivasan
2016-09-01 1:04 ` Uma Srinivasan
2016-09-01 4:09 ` Junio C Hamano
2016-09-01 16:05 ` Uma Srinivasan
2016-09-01 18:32 ` Junio C Hamano
2016-09-01 18:37 ` Stefan Beller
2016-09-01 19:19 ` Junio C Hamano [this message]
2016-09-01 19:56 ` Uma Srinivasan
2016-09-01 20:29 ` Junio C Hamano
2016-09-01 20:21 ` Junio C Hamano
2016-09-01 21:02 ` Junio C Hamano
2016-09-01 21:04 ` Stefan Beller
2016-09-01 21:12 ` Junio C Hamano
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=xmqqa8frwhpr.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox$(echo .)com \
--cc=Jens.Lehmann@web$(echo .)de \
--cc=git@vger$(echo .)kernel.org \
--cc=hvoigt@hvoigt$(echo .)net \
--cc=jacob.keller@gmail$(echo .)com \
--cc=sbeller@google$(echo .)com \
--cc=usrinivasan@twitter$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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