Re: [RFC/PATCH] add update to branch support for "floating submodules"
- From
Phil Hord <phil.hord@gmail.com>
- Date
- Feb 6, 2012, 17:31 UTC
- Message-ID
- <CABURp0rt=LcjMfDU61m0de-gLpX1a3x3vhb0zVxCbceSvD9jFw@mail.gmail.com>
- In-Reply-To
- <4F29BEB7.1080901@web.de>
On Wed, Feb 1, 2012 at 5:37 PM, Jens Lehmann <Jens.Lehmann@web.de> wrote:
Show 21 quoted lines
> Am 31.01.2012 23:50, schrieb Phil Hord: >> What I mean is that a developer may be completely focused on one >> particular submodule (his domain). He does his work in this module, >> and when it's ready he commits and pushes to the server. 'git status' >> shows him that his directory is clean. But this is only because he >> doesn't really know where the submodules top-directories are, so he >> doesn't realize that he has changes in another submodule that he has >> not committed. He has to know to run 'git status' from somewhere in >> the superproject (ostensibly in the root directory of that >> superproject). But he may forget since 'git status' already assured >> him he was done. > <snip> >> I guess what would help here is something like the opposite of 'git >> status' showing the status of descendant submodules; it would help if >> it showed the status of sibling submodules and the superproject as >> well. > > Hmm, I really think the fact that submodules are unaware that they > are part of a superproject is a feature. I'd prefer seeing that kind > of problem being tackled by the CI server and/or user education. Or > maybe a pre-commit hook which issues a warning in that case?
I agree that submodule isolation is a feature essential to the architecture of git and the submodules implementation. But it is also a limitation, not just of this example. A pre-commit hook is a nice idea, but it doesn't help 'git status' (which is the standard go-to answer point for "where am I").
This has me thinking more about recursing siblings now, though. I find
myself typing something like this quite a lot:
git submodule foreach 'git grep "someFunction" || :'Or worse (in that the UI is more unwieldy):
git submodule foreach 'git log --oneline "-SsomeFunction" || :'But what I want is this:
git --git-dir=${TOP}/../.git grep --recurse-submodules "someFunction"But not really, because I am lazy and that is too much typing.
git grep --include-siblings "someFunction"Maybe I can add a "sib" macro to get this:
git sib grep "someFunction"But now I've really wandered off-topic. Phil