Commit Briefs

311c06b8a4 Thomas Adam

portable: release 0.117 (tags/0.117)


4d64bb818d Thomas Adam

portable: maint: add --force flag

When creating files for the dist tarball, add a flag to ignore if the working tree is dirty.


e0bd1cc370 Thomas Adam

bump version number


6e3b72303e Thomas Adam

CHANGES for 0.117


795b1c60ba Thomas Adam

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@


520b3b00a2 Thomas Adam

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.


1de7ce30d8 Thomas Adam

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.


4584117646 Thomas Adam

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@


faf5eede99 Thomas Adam

add a todo item for a bug observed in gotd


2aca439f3f Thomas Adam

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@



9ef13b9dd6 Thomas Adam

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@


9b526dc485 Thomas Adam

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@


b9c2d47a3f Thomas Adam

hack for got_privsep_recv_painted_commits() to sort queue by color

ok op@


2d3c9d642e Thomas Adam

sort commits not processed by got-read-pack properly

ok op@


b2ee88e2fb Thomas Adam

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

ok op@


7d39de3e6c Thomas Adam

add functions which transport object ID queues across the imsg layer

ok op@


91ea6bdc31 Thomas Adam

dedup copyrights

while here move millert@ to the authors too.


e6f8b23dbd Thomas Adam

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.


8bdc30366c Thomas Adam

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@


5a19274d1f Thomas Adam

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@


05ea464b58 Thomas Adam

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@


e650a842f6 Thomas Adam

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@


c1e3a5dcf9 Thomas Adam

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@


e3c4107add Thomas Adam

preserve bad symlinks across merges

ok stsp@ and op@