From: Junio C Hamano Date: Mon, 6 Nov 2017 04:11:27 +0000 (+0900) Subject: Merge branch 'bw/grep-recurse-submodules' X-Git-Tag: v2.16.0-rc0~174 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/2502f018f4cc514b75bdd50c20695d8a35e1d0b5?ds=inline;hp=-c Merge branch 'bw/grep-recurse-submodules' A broken access to object databases in recent update to "git grep --recurse-submodules" has been fixed. * bw/grep-recurse-submodules: grep: take the read-lock when adding a submodule --- 2502f018f4cc514b75bdd50c20695d8a35e1d0b5 diff --combined builtin/grep.c index 2d65f27d01,6946cf4bbc..5a6cfe6b45 --- a/builtin/grep.c +++ b/builtin/grep.c @@@ -431,7 -431,9 +431,9 @@@ static int grep_submodule(struct grep_o * store is no longer global and instead is a member of the repository * object. */ + grep_read_lock(); add_to_alternates_memory(submodule.objectdir); + grep_read_unlock(); if (oid) { struct object *object; @@@ -643,7 -645,7 +645,7 @@@ static int grep_objects(struct grep_op /* load the gitmodules file for this rev */ if (recurse_submodules) { submodule_free(); - gitmodules_config_sha1(real_obj->oid.hash); + gitmodules_config_oid(&real_obj->oid); } if (grep_object(opt, pathspec, real_obj, list->objects[i].name, list->objects[i].path, repo)) { @@@ -983,8 -985,8 +985,8 @@@ int cmd_grep(int argc, const char **arg break; } - if (get_sha1_with_context(arg, GET_SHA1_RECORD_PATH, - oid.hash, &oc)) { + if (get_oid_with_context(arg, GET_OID_RECORD_PATH, + &oid, &oc)) { if (seen_dashdash) die(_("unable to resolve revision: %s"), arg); break; @@@ -1048,6 -1050,10 +1050,6 @@@ } #endif - if (recurse_submodules) { - gitmodules_config(); - } - if (show_in_pager && (cached || list.nr)) die(_("--open-files-in-pager only works on the worktree"));