Files
git/builtin
Jeff King 30b939c33a fast-export: do not load blob objects twice
When fast-export wants to export a blob object, it first
calls parse_object to get a "struct object" and check
whether we have already shown the object.  If we haven't
shown it, we then use read_sha1_file to pull it from disk
and write it out.

That means we load each blob from disk twice: once for
parse_object to find its type and check its sha1, and a
second time when we actually output it. We can drop this to
a single load by using lookup_object to check the SHOWN
flag, and then checking the signature on and outputting a
single buffer.

This provides modest speedups on git.git (best-of-five, "git
fast-export HEAD >/dev/null"):

  [before]                [after]
  real    0m14.347s       real    0m13.780s
  user    0m14.084s       user    0m13.620s
  sys     0m0.208s        sys     0m0.100s

and somewhat more on more blob-heavy repos (this is a
repository full of media files):

  [before]                [after]
  real    0m52.236s       real    0m44.451s
  user    0m50.568s       user    0m43.000s
  sys     0m1.536s        sys     0m1.284s

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-17 15:28:15 -07:00
..
2012-09-17 15:59:34 -07:00
2012-10-25 06:42:27 -04:00
2012-11-20 10:32:10 -08:00
2012-09-27 17:57:26 -07:00
2012-10-09 23:21:30 -07:00
2012-09-11 11:36:05 -07:00
2012-12-26 14:46:15 -08:00
2012-10-25 06:42:27 -04:00
2012-09-14 11:53:53 -07:00
2012-09-07 11:09:09 -07:00
2012-11-26 13:27:45 -08:00
2012-10-29 03:08:30 -04:00
2012-11-29 12:52:30 -08:00
2012-10-25 06:42:27 -04:00