Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Contreras <felipe.contreras@gmail.com>2013-05-06 02:38:54 +0400
committerJunio C Hamano <gitster@pobox.com>2013-05-07 18:03:01 +0400
commit47bd9bf82daeac71b28a5a697ecc44e70b205e18 (patch)
treec9aa53971e85ef928d63c46afe3c6e7a38ace96b
parente6812cfa9aba69a8c9d83b0710291b27bff0f7a3 (diff)
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 <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/fast-export.c7
1 files changed, 6 insertions, 1 deletions
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));