Re: What's cooking in git.git (Nov 2008, #06; Wed, 26)
From: Johannes Sixt <hidden>
Date: 2016-06-15 22:45:46
Nguyen Thai Ngoc Duy schrieb:
On 12/12/08, Junio C Hamano [off-list ref] wrote:quoted
So "git grep -e frotz Documentation/", whether you only check out Documentation or the whole tree, should grep only in Documentation area, and "git grep -e frotz" should grep in the whole tree, even if you happen to have a sparse checkout. By definition, a sparse checkout has no modifications outside the checkout area, so whenever grep wants to look for strings outside the checkout area it should pretend as if the same content as what the index records is in the work tree. This is consistent with the way how "git diff" in a sparsely checked out work tree should behave.Assume someone is using sparse checkout with KDE git repository. They sparse-checkout kdeutils module and do "git grep -e foo". I would expect that the command only searches in kdeutils only (and is the current behavior).
But what if the same persion notices a #define in a kdeutils header file
and want's to know whether it is unused in order to remove it:
$ git grep FOO
kdeutils/foo.h:#define FOO bar
Conclusion from this output: "It's only defined, but not used anywhere."
But this conclusion is not necessarily correct because FOO could be used
outside kdeutils.
So, no, "git grep" should disregard the checkout area.
-- Hannes