We don't need the parsed objects at this point, merely the information that they have marks. Seems to be three times faster in my setup with lots of objects. Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- builtin/fast-export.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/builtin/fast-export.c b/builtin/fast-export.c index a5b8da8..d1d68e9 100644 --- a/builtin/fast-export.c +++ b/builtin/fast-export.c @@ -613,6 +613,7 @@ static void import_marks(char *input_file) char *line_end, *mark_end; unsigned char sha1[20]; struct object *object; + struct commit *commit; enum object_type type; line_end = strchr(line, '\n'); @@ -636,7 +637,11 @@ static void import_marks(char *input_file) /* only commits */ continue; - object = parse_object(sha1); + commit = lookup_commit(sha1); + if (!commit) + die("not a commit? can't happen: %s", sha1_to_hex(sha1)); + + object = &commit->object; if (object->flags & SHOWN) error("Object %s already has a mark", sha1_to_hex(sha1)); -- 1.8.3.rc0.401.g45bba44 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html