grep: fix worktree setup
Unless used with --cached or grepping on a tree, "git grep" will search on working directory, so set up worktree properly Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
4f38f6b5ba
commit
6577f542b3
@ -783,8 +783,11 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
|
|||||||
paths[1] = NULL;
|
paths[1] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!list.nr)
|
if (!list.nr) {
|
||||||
|
if (!cached)
|
||||||
|
setup_work_tree();
|
||||||
return !grep_cache(&opt, paths, cached);
|
return !grep_cache(&opt, paths, cached);
|
||||||
|
}
|
||||||
|
|
||||||
if (cached)
|
if (cached)
|
||||||
die("both --cached and trees are given.");
|
die("both --cached and trees are given.");
|
||||||
|
@ -169,4 +169,9 @@ test_expect_success 'git diff' '
|
|||||||
test_cmp diff-FILES.expected result
|
test_cmp diff-FILES.expected result
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'git grep' '
|
||||||
|
(cd repo.git/work/sub &&
|
||||||
|
GIT_DIR=../.. GIT_WORK_TREE=.. git grep -l changed | grep -q dir/tracked)
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user