Skip to content

Commit

Permalink
fast-export: don't parse commits while reading marks file
Browse files Browse the repository at this point in the history
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@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Felipe Contreras authored and Junio C Hamano committed May 7, 2013
1 parent e6812cf commit 47bd9bf
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion builtin/fast-export.c
Original file line number Diff line number Diff line change
Expand Up @@ -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');
Expand All @@ -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));
Expand Down

0 comments on commit 47bd9bf

Please sign in to comment.