CHANGES for 0.89

make 'got merge -c' fail even if new changes only affect unrelated paths Otherwise, 'got merge -c' can silently revert already committed changes. Also fix GOT_ERR_MERGE_COMMIT_OUT_OF_DATE by giving it a value distinct from GOT_ERR_MERGE_STAGED_PATHS. Patch by James Cook

make "got merge" refuse to run if a merge is in progress and the -a or -c option wasn't passed. Patch by James Cook.

PF_UNSPEC -> AF_UNSPEC While they're the same value, it's more correct to use AF_UNSPEC in this case. While here, change SOCK_DGRAM to SOCK_STREAM since it's what we'll be using. ok stsp@

remove host, host_v4 and host_v6; rename host_dns -> host host_dns() (now just host()) uses getaddrinfo() which knows already how to handle IPv4/IPv6 addresses. Saves a good amount of duplication. ok stsp@

gotwebd: drop unused `prefixlen' from struct address ok stsp@

rename test to better reflect what it is checking for

add regression test for 'got rm *' $PWD removal Patch by Mikhail

only delete empty directories appearing in arguments to 'got rm' Make 'got rm' keep empty directories which are not explicitly listed for deletion. Deleting such directories is problematic in several use cases. Avoids deleting the current working directory when the user runs "got rm *" (pointed out by Mikhail), and avoids deletion of an empty directory "foo/" after 'got rm foo/a foo/b' (pointed out by op@). ok jamsek, op

fix refs_str memory leaks Pointed out by op@

rework how reference labels are rendered in the tog log view Draw reference labels and log message as separate strings. The previous code contained calculations mixing variables which represent an amount of wide characters in a string vs the display width of the string. We can avoid such nonsense by keeping the strings separate, though we have to be a bit careful about keeping horizontal scrolling intact. Also fix a bug where we failed to account for reference labels while setting view->maxx which made the $ key not scroll far enough. ok op@

gotwebd: fix some got_error_from_errno2/3 calls it's not printf-like so %s don't make sense. Tweak the order of the arguments to obtain the intended output.

consistently use ten Xs in mkstemp(3) templates patch from Josiah Frentsos, thanks!

typo: character -> characters

stop showing backup references in the tog log and diff views Backup references clutter the log view too much now that we display labels next to commit messages. They were accidentally added to the log and diffs view by me, via build_refs_str(), when support for listing backup references was added to the ref view.

fix 'tog log' display regression with long reference lists When the terminal becomes smaller horizontally we did not properly account for remaining columns and the log message of a commit could overflow into the next line, garbling the display.

add a gotd todo item

trim trailing whitespace in TODO file

make gitwrapper not fail if programs it wants to run do not exist on disk

simplify ancestry checks in checkout, update, rebase, and merge No behaviour change as the end result of the rewritten checks should be the same as before. We are just doing less work where possible. Patch by James Cook

fix the size of gotwebd's array of tempfiles used for deltas Prevents ftruncate() errors due to bogus file descriptors passed from gotwebd once the repository layer runs out of temporary files to use for deltas. Have gotwebd open the maximum amount of required temporary files for now. A proper fix which scales to lower ulimit -n settings can be implemented later. Problem reported by patrick@

reword misleading comment in struct got_repository WRT struct got_pack

gotd no longer uses chroot; remove comments suggesting otherwise

gotwebd: avoid needless double fseek() got_gotweb_closefile() already takes care of rewinding before truncating and closing, so no need to replicate here. ok stsp@

gotwebd: lower log priority of unexpected disconnections no need to be so loud when a client disconnects earlier than expected, log it only in verbose mode. Don't log GOT_ERR_CANCELLED too since that is only used to communicate the callers that we need to stop. ok stsp@