Merge branch 'jk/log-decorate-optim'
Optimize "git log" for cases where we wasted cycles to load ref decoration data that may not be needed. * jk/log-decorate-optim: load_ref_decorations(): fix decoration with tags add_ref_decoration(): rename s/type/deco_type/ load_ref_decorations(): avoid parsing non-tag objects object.h: add lookup_object_by_type() function object.h: expand docstring for lookup_unknown_object() log: avoid loading decorations for userformats that don't need it pretty.h: update and expand docstring for userformat_find_requirements()
This commit is contained in:
18
object.c
18
object.c
@ -185,6 +185,24 @@ struct object *lookup_unknown_object(struct repository *r, const struct object_i
|
||||
return obj;
|
||||
}
|
||||
|
||||
struct object *lookup_object_by_type(struct repository *r,
|
||||
const struct object_id *oid,
|
||||
enum object_type type)
|
||||
{
|
||||
switch (type) {
|
||||
case OBJ_COMMIT:
|
||||
return (struct object *)lookup_commit(r, oid);
|
||||
case OBJ_TREE:
|
||||
return (struct object *)lookup_tree(r, oid);
|
||||
case OBJ_TAG:
|
||||
return (struct object *)lookup_tag(r, oid);
|
||||
case OBJ_BLOB:
|
||||
return (struct object *)lookup_blob(r, oid);
|
||||
default:
|
||||
die("BUG: unknown object type %d", type);
|
||||
}
|
||||
}
|
||||
|
||||
struct object *parse_object_buffer(struct repository *r, const struct object_id *oid, enum object_type type, unsigned long size, void *buffer, int *eaten_p)
|
||||
{
|
||||
struct object *obj;
|
||||
|
Reference in New Issue
Block a user