Commit Briefs

6863cbf965 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.




bfc73a473b Christian Weisgerber

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


b8af7c0693 Stefan Sperling

print additional progress information while packing

ok op@


9b576444ae 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@


e3f8625647 Christian Weisgerber

explicitly include <endian.h> for be32toh()



67fd684965 Stefan Sperling

reuse existing deltas when creating pack files

tested by thomas, naddy, and myself





64a8571e12 Stefan Sperling

map raw object files into memory while packing if possible


59b21794ec Stefan Sperling

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

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


211cfef0b2 Stefan Sperling

use time-based rate-limiting for gotadmin progress output

Suggested by naddy some time ago. ok tracey



4f4d853e5a 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.




dc20764a37 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.



d3c116bf72 Stefan Sperling

cache raw objects in order to speed up gotadmin pack