Commits


introduce 'gotadmin info'


introduce got_object_open_loose_fd() for library-internal use


add got_packidx_get_packfile_path() for library-internal use


do not update symlinks which are already up-to-date This fixes spurious 'U' notifications for symlinks during 'got update' that occurred even when the work tree was fully up-to-date. Observed on a work tree of the FreeBSD src repo and reproduced in our test suite by adding a no-op update at the end of a test which deals with updating symlinks.


add a missing STATUS_EXISTS notification in update_blob()


bump version number


CHANGES for 0.52


fix open file descriptor leak in error path of read_object_header_privsep()


Fix "mandoc -T lint" WARNINGS and ERRORS, add missing word


diff: reduce duplicate code Condense error checking to reduce a future diff moving those lines around; this pattern is already used in other parts of the tree. fine stsp ok tracey


when reading a pack index byte-swap fields at compile-time where possible suggested by mpi@ ages ago


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


fix off-by-one in got_repo_cache_pack()


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.


fix error checking in dial_ssh()