Commits


portable: release 0.117


portable: maint: add --force flag When creating files for the dist tarball, add a flag to ignore if the working tree is dirty.


bump version number


CHANGES for 0.117


make 'got clone' set a got.conf default branch for fetching only, not sending This will make 'got send' default to the work tree's current branch or the HEAD reference if not invoked in a work tree, rather than defaulting to sending the default branch found while cloning. Issue pointed out by op@ ok op@


add a gotsysd regress target which rebuilds binaries in the VM Makes it easier to keep the same VM running for manual testing while tweaking the code.


gotsysd regress: run make clean in the template directory, else build can fail Without make clean we would end up running a template binary built on the host system, which won't run in case libc.so is out sync between host and VM.


regress: git: don't load global/home configs When running git(1) commands as part of the test suite, disallow git(1) from loading either the global or home gitconfig file. This has the ability to mess with the test and how they're setup. Each test already sets its own config so this is the preferred option anyway. OK stsp@


add a todo item for a bug observed in gotd


better fix for long loop bug during commit coloring with offloading Repaint already queued commits in the main process instead of removing them from the queue. Otherwise we may never converge to a state where all commits are marked as skipped. Instead such commits can inherit color keep and we'll keep on asking got-read-pack to paint more commits for a very long time. ok op@


revert previous change, it breaks 'gotadmin cleanup'; need a better fix


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. ok op@


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. ok op@


hack for got_privsep_recv_painted_commits() to sort queue by color ok op@


sort commits not processed by got-read-pack properly ok op@


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


add functions which transport object ID queues across the imsg layer ok op@


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@