Commits


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


detect unknown repository format extensions (such as sha256 format) ok millert


add per-worktree got.conf(5) file in the .got directory; ok millert


add got.conf(5) configuration file ok tracey


use GOT_OBJECTS_PACK_DIR instead of variants of the same which contain typos


read repository owner name with gitconfig parser instead of a hand-rolled one


fix pack index cache; don't open/close pack index files needlessly


parse remotes from gitconfig


use author name/email from ~/.gitconfig if GOT_AUTHOR is not set


obtain repo format version and commit author name/email from .git/config


add support for reading .git/config; parser was based on isakmpd/conf.c