Merge branch 'sb/submodule-move-nested'
Moving a submodule that itself has submodule in it with "git mv" forgot to make necessary adjustment to the nested sub-submodules; now the codepath learned to recurse into the submodules. * sb/submodule-move-nested: submodule: fixup nested submodules after moving the submodule submodule-config: remove submodule_from_cache submodule-config: add repository argument to submodule_from_{name, path} submodule-config: allow submodule_free to handle arbitrary repositories grep: remove "repo" arg from non-supporting funcs submodule.h: drop declaration of connect_work_tree_and_git_dir
This commit is contained in:
@ -602,8 +602,7 @@ static int grep_tree(struct grep_opt *opt, const struct pathspec *pathspec,
|
||||
}
|
||||
|
||||
static int grep_object(struct grep_opt *opt, const struct pathspec *pathspec,
|
||||
struct object *obj, const char *name, const char *path,
|
||||
struct repository *repo)
|
||||
struct object *obj, const char *name, const char *path)
|
||||
{
|
||||
if (obj->type == OBJ_BLOB)
|
||||
return grep_oid(opt, &obj->oid, name, 0, path);
|
||||
@ -630,7 +629,7 @@ static int grep_object(struct grep_opt *opt, const struct pathspec *pathspec,
|
||||
}
|
||||
init_tree_desc(&tree, data, size);
|
||||
hit = grep_tree(opt, pathspec, &tree, &base, base.len,
|
||||
obj->type == OBJ_COMMIT, repo);
|
||||
obj->type == OBJ_COMMIT, the_repository);
|
||||
strbuf_release(&base);
|
||||
free(data);
|
||||
return hit;
|
||||
@ -639,7 +638,6 @@ static int grep_object(struct grep_opt *opt, const struct pathspec *pathspec,
|
||||
}
|
||||
|
||||
static int grep_objects(struct grep_opt *opt, const struct pathspec *pathspec,
|
||||
struct repository *repo,
|
||||
const struct object_array *list)
|
||||
{
|
||||
unsigned int i;
|
||||
@ -652,11 +650,11 @@ static int grep_objects(struct grep_opt *opt, const struct pathspec *pathspec,
|
||||
|
||||
/* load the gitmodules file for this rev */
|
||||
if (recurse_submodules) {
|
||||
submodule_free();
|
||||
submodule_free(the_repository);
|
||||
gitmodules_config_oid(&real_obj->oid);
|
||||
}
|
||||
if (grep_object(opt, pathspec, real_obj, list->objects[i].name, list->objects[i].path,
|
||||
repo)) {
|
||||
if (grep_object(opt, pathspec, real_obj, list->objects[i].name,
|
||||
list->objects[i].path)) {
|
||||
hit = 1;
|
||||
if (opt->status_only)
|
||||
break;
|
||||
@ -1108,7 +1106,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
|
||||
if (cached)
|
||||
die(_("both --cached and trees are given."));
|
||||
|
||||
hit = grep_objects(&opt, &pathspec, the_repository, &list);
|
||||
hit = grep_objects(&opt, &pathspec, &list);
|
||||
}
|
||||
|
||||
if (num_threads)
|
||||
|
Reference in New Issue
Block a user