mirror of
https://github.com/git/git
synced 2024-10-01 06:05:20 +00:00
Merge branch 'kh/pathspec-error-wo-repository-fix'
The pathspec code carelessly dereferenced NULL while emitting an error message, which has been corrected. * kh/pathspec-error-wo-repository-fix: grep: die gracefully when outside repository
This commit is contained in:
commit
64912cc023
|
@ -467,7 +467,12 @@ static void init_pathspec_item(struct pathspec_item *item, unsigned flags,
|
|||
match = prefix_path_gently(prefix, prefixlen,
|
||||
&prefixlen, copyfrom);
|
||||
if (!match) {
|
||||
const char *hint_path = get_git_work_tree();
|
||||
const char *hint_path;
|
||||
|
||||
if (!have_git_dir())
|
||||
die(_("'%s' is outside the directory tree"),
|
||||
copyfrom);
|
||||
hint_path = get_git_work_tree();
|
||||
if (!hint_path)
|
||||
hint_path = get_git_dir();
|
||||
die(_("%s: '%s' is outside repository at '%s'"), elt,
|
||||
|
|
|
@ -1234,6 +1234,33 @@ test_expect_success 'outside of git repository with fallbackToNoIndex' '
|
|||
)
|
||||
'
|
||||
|
||||
test_expect_success 'no repository with path outside $cwd' '
|
||||
test_when_finished rm -fr non &&
|
||||
rm -fr non &&
|
||||
mkdir -p non/git/sub non/tig &&
|
||||
(
|
||||
GIT_CEILING_DIRECTORIES="$(pwd)/non" &&
|
||||
export GIT_CEILING_DIRECTORIES &&
|
||||
cd non/git &&
|
||||
test_expect_code 128 git grep --no-index search .. 2>error &&
|
||||
grep "is outside the directory tree" error
|
||||
) &&
|
||||
(
|
||||
GIT_CEILING_DIRECTORIES="$(pwd)/non" &&
|
||||
export GIT_CEILING_DIRECTORIES &&
|
||||
cd non/git &&
|
||||
test_expect_code 128 git grep --no-index search ../tig 2>error &&
|
||||
grep "is outside the directory tree" error
|
||||
) &&
|
||||
(
|
||||
GIT_CEILING_DIRECTORIES="$(pwd)/non" &&
|
||||
export GIT_CEILING_DIRECTORIES &&
|
||||
cd non/git &&
|
||||
test_expect_code 128 git grep --no-index search ../non 2>error &&
|
||||
grep "no such path in the working tree" error
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'inside git repository but with --no-index' '
|
||||
rm -fr is &&
|
||||
mkdir -p is/git/sub &&
|
||||
|
|
Loading…
Reference in a new issue