Re: [RFC/PATCH] Disallow commands from within unpopulated submodules.
- From
Stefan Beller <sbeller@google.com>
- Date
- Jan 20, 2017, 20:07 UTC
- Message-ID
- <CAGZ79kYSW7i9kyT5Nd2QuiRF+=oWz+6U6VGpAQhfspUHMjWnpw@mail.gmail.com>
- In-Reply-To
- <20170120200041.hefg44stddqe344z@sigill.intra.peff.net>
On Fri, Jan 20, 2017 at 12:00 PM, Jeff King <peff@peff.net> wrote:
Show 20 quoted lines
> On Fri, Jan 20, 2017 at 11:53:01AM -0800, Stefan Beller wrote: > >> > One alternative would be to make the check cheaper. Could we reliably >> > tell from the submodule.foo.* block in the config that path "foo" is a >> > submodule? I think that would work after "submodule init" but not right >> > after "git clone". So the index really is the source of truth there. >> >> Well we can check if there is a .gitmodules file that has a >> submodule.*.path equal to the last part of $CWD, no need to look >> at the git config. >> >> And that would also work right after git clone (in an >> unpopulated/uninitialized submodule as I call it). >> >> And in my current understanding of submodules the check in >> .gitmodules ought to be enough, too. > > Yeah, that probably makes sense. You can have a gitlink without a > .gitmodules file, but I don't quite know what that would mean in terms > of submodules (I guess it's not a submodule but "something else").
yeah, I agree it could be git series[1] at work, or as you said "something else", and we have no idea what to do.
I think this could actually be implemented top-down, because the check is cheap as we're beginning with lstat(.gitmodules), and no further pursue checking this corner case in case the .gitmodules is not found.
I'll see if I can make a patch that passes the test suite.
[1] https://github.com/git-series/git-series/blob/master/INTERNALS.md
> > -Peff