Commits


do not let got-read-pack paint parent commits which are not in its pack file If any parent commit of the current commit is missing, stop iterating and return control to the main process. Fixes a case where offloading to got-read-pack resulted in an effectively endless loop.


improve selection of pack files for pinning in the open pack file cache If two given pack files contain the same amount of requested commits, prefer the pack file which contains the larger amount of total objects to increase our chances of full history traversal. Also, require the first element of the list of requested commits to be present in the pack file since the caller will very likely try to process this commit immediately when we return. This fixes cases where offloading of commit coloring to got-read-pack was ineffective, causing us to take the slow path instead.


hack for got_privsep_recv_painted_commits() to sort queue by color


sort commits not processed by got-read-pack properly


pass an exact copy of queued IDs to got-read-pack during commit coloring


add functions which transport object ID queues across the imsg layer


dedup copyrights while here move millert@ to the authors too.


gotwebd: avoid needless close send_imsg() does a imsg_flush() too which will ensure the fd is sent over to the other process and close it on this side. If it fails we terminate anyway, so no need to close (doubly!) the fds.


ensure that drops and skips get processed before keeps during commit coloring This makes repainting parent commits unnecessary and seems to avoid cases where our coloring algorithm ran into worst case performance behaviour. ok op@


remove code which repaints parent commits from commit coloring implementation Two pack tests start failing. This will be fixed in the next commit. ok op@


gotwebd: avoid the pipe; forward the socket directly Instead of keeping a pipe between the sockets and the gotwebd process, just forward the socket directly. This needs a little bit of care because once we enter process_request() the socket (possibly) no longer there, so on the socket side use the client_status as a flag to signal the caller that we're done. I hope to improve this in follow-ups. The motivation behind this is to avoid a (possible, but quite easily triggerable) race in the current code where the other side might process GOTWEBD_IMSG_REQ_DONE before draining the pipe, truncating the output page. ok stsp@


improve binary blob detection just like the change just done in diff.git, consider a blob binary if it has any control character (except for the tabs) joint work with jtt@, ok stsp@


sync files from diff.git 543aed44ef221a67c386d967ec45907fb129194b improve binary files detection instead of 'just' looking for NUL, consider a file binary if it has any control charcters (except our beloved tabs characters). joint work with jtt@, ok stsp@


preserve bad symlinks across merges ok stsp@ and op@


fix math in fcgi_send_response We can't hit actually hit this because our buffers are way smaller than FCGI_CONTENT_SIZE (65536) but if we were, we'd end up sending wrong fastcgi packets. found with / ok stsp@


the gotsys auth/hmac index must be globally unique, not unique per repository tested by Mischa Peters


fix gotsysd using wrong auth and hmac labels in the generated gotd.conf Problem reported by Mischa Peters


make got-read-pack exit from repaint_parent_commits() upon SIGINT


ensure that error messages from gotsysd libexec helpers get logged


gotsysd regress: use a better default mirror; cdn is slow for snapshots


fix potential type mismatch between format specifier and argument Cast argument of type uint64_t to unsigned long long to match the %llu format specifier on platforms where this might not be the case. ok thomas


regress: replace "sed -i" with ed(1) for portable in-place editing "sed -i" is fundamentally unportable. GNU and OpenBSD sed(1) treat the extension for the backup file as an optional argument and use "sed -i" for no backup file. FreeBSD sed(1) treats the extension as an obligatory argument and uses "sed -i ''" for no backup file. There is no single syntax that works for both.


bump version number


CHANGES for 0.116


sync dist file list