grep: read submodule entry with explicit repo
Replace an existing parse_object_or_die() call (which implicitly works on the_repository) with a function call that allows a repository to be passed in. There is no such direct equivalent to parse_object_or_die(), but we only need the type of the object, so replace with oid_object_info(). Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Reviewed-by: Emily Shaffer <emilyshaffer@google.com> Reviewed-by: Matheus Tavares <matheus.bernardino@usp.br> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
50d92b5f03
commit
78ca584f1c
@ -457,27 +457,27 @@ static int grep_submodule(struct grep_opt *opt,
|
|||||||
subopt.repo = &subrepo;
|
subopt.repo = &subrepo;
|
||||||
|
|
||||||
if (oid) {
|
if (oid) {
|
||||||
struct object *object;
|
enum object_type object_type;
|
||||||
struct tree_desc tree;
|
struct tree_desc tree;
|
||||||
void *data;
|
void *data;
|
||||||
unsigned long size;
|
unsigned long size;
|
||||||
struct strbuf base = STRBUF_INIT;
|
struct strbuf base = STRBUF_INIT;
|
||||||
|
|
||||||
obj_read_lock();
|
obj_read_lock();
|
||||||
object = parse_object_or_die(oid, NULL);
|
object_type = oid_object_info(&subrepo, oid, NULL);
|
||||||
obj_read_unlock();
|
obj_read_unlock();
|
||||||
data = read_object_with_reference(&subrepo,
|
data = read_object_with_reference(&subrepo,
|
||||||
&object->oid, tree_type,
|
oid, tree_type,
|
||||||
&size, NULL);
|
&size, NULL);
|
||||||
if (!data)
|
if (!data)
|
||||||
die(_("unable to read tree (%s)"), oid_to_hex(&object->oid));
|
die(_("unable to read tree (%s)"), oid_to_hex(oid));
|
||||||
|
|
||||||
strbuf_addstr(&base, filename);
|
strbuf_addstr(&base, filename);
|
||||||
strbuf_addch(&base, '/');
|
strbuf_addch(&base, '/');
|
||||||
|
|
||||||
init_tree_desc(&tree, data, size);
|
init_tree_desc(&tree, data, size);
|
||||||
hit = grep_tree(&subopt, pathspec, &tree, &base, base.len,
|
hit = grep_tree(&subopt, pathspec, &tree, &base, base.len,
|
||||||
object->type == OBJ_COMMIT);
|
object_type == OBJ_COMMIT);
|
||||||
strbuf_release(&base);
|
strbuf_release(&base);
|
||||||
free(data);
|
free(data);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user