On Wed, Aug 17, 2022 at 7:25 AM Derrick Stolee <derrickstolee@xxxxxxxxxx> wrote: > > On 8/17/2022 3:56 AM, Shaoxuan Yuan wrote: > > Add a --sparse option to `git-grep`. This option is mainly used to: > > > > If searching in the index (using --cached): > > > > With --sparse, proceed the action when the current cache_entry is > > This phrasing is awkward. It might be better to reframe to describe the > _why_ before the _what_ > > When the '--cached' option is used with the 'git grep' command, the > search is limited to the blobs found in the index, not in the worktree. > If the user has enabled sparse-checkout, this might present more results > than they would like, since the files outside of the sparse-checkout are > unlikely to be important to them. > > Change the default behavior of 'git grep' to focus on the files within > the sparse-checkout definition. To enable the previous behavior, add a > '--sparse' option to 'git grep' that triggers the old behavior that > inspects paths outside of the sparse-checkout definition when paired > with the '--cached' option. > > Or something like that. The documentation updates will also help clarify > what happens when '--cached' is not included. I assume '--sparse' is > ignored, but perhaps it _could_ allow looking at the cached files outside > the sparse-checkout definition, this could make the simpler invocation of > 'git grep --sparse <pattern>' be the way that users can search after their > attempt to search the worktree failed. In addition to Stolee's comments, isn't this command line confusing? $ git grep --cached --sparse # Do a *dense* search $ git grep --cached # Do a *sparse* search ?