var: run setup_git_directory_gently() sooner
[gitweb.git] / builtin / grep.c
index 232cd1ce07bf3f695c722e6217ce653ff704d64b..ca56c5b0099e19059b51440880d032c5e1d27f5e 100644 (file)
@@ -839,7 +839,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
        struct string_list path_list = { NULL, 0, 0, 0 };
        int i;
        int dummy;
-       int nongit = 0, use_index = 1;
+       int use_index = 1;
        struct option options[] = {
                OPT_BOOLEAN(0, "cached", &cached,
                        "search in index instead of in the work tree"),
@@ -930,8 +930,6 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
                OPT_END()
        };
 
-       prefix = setup_git_directory_gently(&nongit);
-
        /*
         * 'git grep -h', unlike 'git grep -h <pattern>', is a request
         * to show usage information and exit.
@@ -976,7 +974,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
                             PARSE_OPT_STOP_AT_NON_OPTION |
                             PARSE_OPT_NO_INTERNAL_HELP);
 
-       if (use_index && nongit)
+       if (use_index && !startup_info->have_repository)
                /* die the same way as if we did it at the beginning */
                setup_git_directory();
 
@@ -1001,6 +999,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
        if (show_in_pager == default_pager)
                show_in_pager = git_pager(1);
        if (show_in_pager) {
+               opt.color = 0;
                opt.name_only = 1;
                opt.null_following_name = 1;
                opt.output_priv = &path_list;