From 47bd9bf82daeac71b28a5a697ecc44e70b205e18 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Sun, 5 May 2013 17:38:54 -0500 Subject: fast-export: don't parse commits while reading marks file 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 Signed-off-by: Junio C Hamano --- builtin/fast-export.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'builtin/fast-export.c') diff --git a/builtin/fast-export.c b/builtin/fast-export.c index dd561e5031..18fdfb31af 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)); -- cgit v1.2.3