grep: die gracefully when outside repository
commitb1688ea02df6fdefd5a228a0d52583356d433a99
authorKristoffer Haugsbakk <code@khaugsbakk.name>
Fri, 20 Oct 2023 16:40:07 +0000 (20 18:40 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 20 Oct 2023 18:06:45 +0000 (20 11:06 -0700)
tree3f72d6fb62c303cebbcc0329288845548766356b
parenta9ecda2788e229afc9b611acaa26d0d9d4da53ed
grep: die gracefully when outside repository

Die gracefully when `git grep --no-index` is run outside of a Git
repository and the path is outside the directory tree.

If you are not in a Git repository and say:

    git grep --no-index search ..

You trigger a `BUG`:

    BUG: environment.c:213: git environment hasn't been setup
    Aborted (core dumped)

Because `..` is a valid path which is treated as a pathspec. Then
`pathspec` figures out that it is not in the current directory tree. The
`BUG` is triggered when `pathspec` tries to advise the user about how the
path is not in the current (non-existing) repository.

Reported-by: ks1322 ks1322 <ks1322@gmail.com>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pathspec.c
t/t7810-grep.sh