Re: let git grep consider sub projects
- From
Jens Lehmann <jens.lehmann@web.de>
- Date
- Oct 8, 2014, 06:48 UTC
- Message-ID
- <5434DE29.2010200@web.de>
- In-Reply-To
- <CAHYJk3Qrj3QfBK-MkcCS2AmyTz=AgCcruq7Df-YZKW24LMWTHg@mail.gmail.com>
Am 07.10.2014 um 21:12 schrieb Mikael Magnusson:
Show 24 quoted lines
> On 7 October 2014 20:25, Junio C Hamano <gitster@pobox.com> wrote: >> Olaf Hering <olaf@aepfle.de> writes: >> >>> How can I teach 'git grep $string' to also consider subprojects? >>> >>> The build system of xen.git clones 4 other trees into a directory in its >>> source tree during build. It would be nice if my 'git grep' searches >>> also in these cloned subdirs. Somehow there must be some knowledge >>> because 'git clean -dfx' leaves them alone, while 'git clean -dffx' >>> wipes everything. >>> >>> Olaf >>> >>> PS: Sometimes I miss a 'git clean -dfx --also-sub-repos' useful to >>> really clean everything before starting over. >> >> Is "submodule foreach" under-advertised or with less than adequate >> features? > > It sounds like in these use cases, you would want the commands to run > on all the submodules but also in the parent repo, am I wrong in > thinking that git submodule foreach does only the former part? So you > would either need to make a wrapper thing yourself or run the command > twice.
Yep, the workaround for a command "git foo" that hasn't learned the --recurse-submodules option yet is
git foo && git submodule foreach --recursive git foo
Show 5 quoted lines
> In the first case with the git grep, I can also imagine that with some > nontrivial patterns, having to quote the metacharacters not only once, > but twice, can be a significant annoyance. Eg, first protect it from > git submodule foreach parsing it, and then from the shell running the > individual commands.
The long term goal is to teach git grep and git clean - and others - the --recurse-submodules option. I'd be happy to help if someone wants to work on that, as I'm busy working on another topic.