> Add config pack.graphcompression similar to pack.compression. > Applies to non-blob objects and if unspecified falls back to pack.compression. > > We may identify objects compressed with level 0 by their leading bytes. > Use this to force recompression when the source and target levels mismatch. > Limit its application to when the config pack.graphcompression is set. > > Signed-off-by: David Michael Barr <b@xxxxxxxxxxxx (mailto:b@xxxxxxxxxxxx)> > --- > builtin/pack-objects.c | 49 +++++++++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 45 insertions(+), 4 deletions(-) > > I started working on this just before taking a vacation, > so it's been a little while coming. > > The intent is to allow selective recompression of pack data. > For small objects/deltas the overhead of deflate is significant. > This may improve read performance for the object graph. > > I ran some unscientific experiments with the chromium repository. > With pack.graphcompression = 0, there was a 2.7% increase in pack size. > I saw a 35% improvement with cold caches and 43% otherwise on git log --raw. I neglected to mention that this is a WIP. I get failures with certain repositories: fatal: delta size changed -- David Michael Barr -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html