Commit Briefs
portable: release 0.117 (tags/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.
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@
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@
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@
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@