Commits


move declaration of got_privsep_child out of got_lib_privsep.h This declaration is the only reason why got_lib_privsep.h must be included in order to use got_lib_repository.h. Moving this declaration will allow for cleaning up unnecessary includes of got_lib_privsep.h.


move code for reading Git's config file into new file read_gitconfig_privsep.c The end goal here is to remove the dependency of repository.c on privsep.c during compilation.


refresh our pack-index path list if the mtime of objects/pack has changed ok op@


implement support for commit coloring in got-read-pack for speed ok op, tracey


reduce GOT_PACK_CACHE_SIZE to 32, otherwise it uses too many open files found by tracey


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@


reuse existing deltas when creating pack files tested by thomas, naddy, and myself


cache raw objects in order to speed up gotadmin pack


use RB_TREE instead of STAILQ to manage packindex bloom filters; much faster


use a bloom filter to avoid pointless pack index searches


indentation fixes


handle pack index files which lack a corresponding pack file ok millert


cap pack file cache size at 1/8 of the current open file desciptor limit


increase pack index cache size from 16 to 64 to improve performance This can make a huge difference on repositories which contain more than 16 pack files, at the expense of additional open file handles. My test case was a ports.git repository with > 60 pack files (these accumulate due to 'got fetch', and 'git repack -a' would condense them). With cache size 16 'got update' in /usr/ports took more than 60 seconds. With cache size 64 the same command took less than 5 seconds. The root cause is probably that mapping and unmapping large files over and over again is expensive on OpenBSD.


add fd field to got_repository, modify got_packidx_open to use fds These changes are intended to make got more compatible with FreeBSD's Capsicum. ok stsp