diff options
-rw-r--r-- | builtin/grep.c | 8 | ||||
-rwxr-xr-x | t/t7810-grep.sh | 18 |
2 files changed, 26 insertions, 0 deletions
diff --git a/builtin/grep.c b/builtin/grep.c index 8ab2005c2f..249c683c92 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -290,6 +290,12 @@ static int grep_cmd_config(const char *var, const char *value, void *cb) if (num_threads < 0) die(_("invalid number of threads specified (%d) for %s"), num_threads, var); +#ifdef NO_PTHREADS + else if (num_threads && num_threads != 1) { + warning(_("no threads support, ignoring %s"), var); + num_threads = 0; + } +#endif } return st; @@ -1222,6 +1228,8 @@ int cmd_grep(int argc, const char **argv, const char *prefix) if (num_threads == 1) num_threads = 0; #else + if (num_threads) + warning(_("no threads support, ignoring --threads")); num_threads = 0; #endif diff --git a/t/t7810-grep.sh b/t/t7810-grep.sh index 4523ca926b..f4c225b410 100755 --- a/t/t7810-grep.sh +++ b/t/t7810-grep.sh @@ -787,6 +787,24 @@ do " done +test_expect_success !PTHREADS,!GETTEXT_POISON 'grep --threads=N or pack.threads=N warns when no pthreads' ' + git grep --threads=2 Hello hello_world 2>err && + grep ^warning: err >warnings && + test_line_count = 1 warnings && + grep "no threads support, ignoring --threads" err && + git -c grep.threads=2 grep Hello hello_world 2>err && + grep ^warning: err >warnings && + test_line_count = 1 warnings && + grep "no threads support, ignoring grep\.threads" err && + git -c grep.threads=2 grep --threads=4 Hello hello_world 2>err && + grep ^warning: err >warnings && + test_line_count = 2 warnings && + grep "no threads support, ignoring --threads" err && + grep "no threads support, ignoring grep\.threads" err && + git -c grep.threads=0 grep --threads=0 Hello hello_world 2>err && + test_line_count = 0 err +' + test_expect_success 'grep from a subdirectory to search wider area (1)' ' mkdir -p s && ( |