From: Junio C Hamano Date: Fri, 03 May 2013 21:54:56 GMT Subject: Re: [PATCH 3/4] fast-export: don't parse all the commits Message-ID: <7vd2t7ybin.fsf@alter.siamese.dyndns.org> In-Reply-To: <1367555502-4706-4-git-send-email-felipe.contreras@gmail.com> Felipe Contreras writes: > 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 > --- > builtin/fast-export.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/builtin/fast-export.c b/builtin/fast-export.c > index a5b8da8..3c5a701 100644 > --- a/builtin/fast-export.c > +++ b/builtin/fast-export.c > @@ -636,7 +636,7 @@ static void import_marks(char *input_file) > /* only commits */ > continue; > > - object = parse_object(sha1); > + object = lookup_unknown_object(sha1); This updates the parse_object() moved by the previous patch. At this point in the codeflow, unlike the original, we already _know_ the object must be a commit; wouldn't an equivalent of: object = &(lookup_commit(sha1)->object) be more correct here? > > if (object->flags & SHOWN) > error("Object %s already has a mark", sha1_to_hex(sha1));