Commit Briefs

Stefan Sperling

fix pack progress object counter for loose objects

Move pack progres object accounting to a single place. This makes it easier to account for the case were only loose objects are packed. A wrong amount of objects was reported before when packing loose ones.




Christian Weisgerber

explicitly include <unistd.h> for close(2)


Stefan Sperling

print additional progress information while packing

ok op@


Stefan Sperling

cache a list of known pack index files when the repository is opened

Avoids overhead due to readdir calls while searching a pack index. ok op@


Christian Weisgerber

explicitly include <endian.h> for be32toh()



Stefan Sperling

reuse existing deltas when creating pack files

tested by thomas, naddy, and myself






Stefan Sperling

only open raw objects if necessary while writing out pack file data

significantly speeds up the "writing pack: " step of gotadmin pack


Stefan Sperling

use time-based rate-limiting for gotadmin progress output

Suggested by naddy some time ago. ok tracey



Stefan Sperling

try only 3 delta base candidates instead of 10 to speed up packing

Tests by kn, thomas_adam and myself made on various repositories indicate that 3 is a good choice. Tyring 10 deltas is much slower and does not result in significantly smaller pack files.




Stefan Sperling

limit delta chain length in newly created pack files to 32 deltas

Our former limit was 128 which is fairly high. Git uses 50 by default. A smaller limit results in slightly larger pack files but makes both packing and unpacking faster.