add got_hash_digest{,_string}_length() These will be very much useful in the near future.

ensure we properly zero got_object_id structs ok tobeh@

bump version number

CHANGES for 0.101

use proper type for got_imsg_enumerated_tree ok stsp@

use proper type for got_imsg_enumerated_commit ok stsp@

s/pack_sha1_ctx/pack_hash_ctx it's a bit silly to call the context for got_hash with sha1 since it's an API explicitly thought to abstract over the hash algorithm. Also, this is going to cover sha256 pack files soon too.

dial.c: include sha2.h too Soon got_lib_hash.h will require sha2.h included, the rest of the tree il ready except dial.c

delete some dead code None of these structures are used anymore, the only thing still used are the GOT_PACK_OBJ_DELTA_OFF_* defines.

add a rebase todo item

use got_object_id_hex instead of got_sha1_digest_to_str (where possible) The latter assumes that we only have sha1 digests to pretty-print, while the former could, in the future, automatically switch to sha256. At the moment though, this is a no-op.

change got_imsg_painted_commit to use a object id struct ok stsp@

gotd: use a struct got_object_id instead of an hash buffer ok stsp@

gotd regress: update error message

gotwebd: change how we deal with a non-existant config file We don't need a config file since we have some defaults, but we also need a way to set them. After the change to move `listen on' to a global rule, we don't add the default socket anymore when there's no config file. Instead, change how we deal with an *existing* config file and leave the rest of parse_function() to handle the case of missing knobs to set up.

gotwebd: plug fd leak in error path

swap error check in got_gotweb_closefile() to always call ftruncate

tog: squish horizontal scroll bug that draws trailing '.' When calling span_wline() to compute the number of columns to skip on a string with a column length less than or equal to the number of columns we want to skip (i.e., that the user has scrolled right), the call to wcwidth(3) returns -1 for a '\n', which we replace with a '.' character. Trim trailing newlines before calling span_wline(). ok op@

fix diff view J keymap to diff the next commit in the log When the last visible commit in the log view is selected while in a log/diff horizontal split, and fullscreen is then toggled in the diff view, the user cannot scroll to the next commit with the diff view J keymap due to a bad predicate guarding a clamp to prevent scrolling off-screen that should only be applied when in the horizontally split log view and not when scrolling from the diff view. The fix also reveals an off-by-one that's only applicable in the hsplit case in the subsequent commit loading logic that also breaks J when attempting to scroll beyond the last loaded commit. New regress added to cover these cases. ok op@ (caveated that he's unsure exactly why the OB1 fix works)

fix previous; as Paul points out this section talks about the repository path I didn't take the time to read the surrounding lines, sorry.

fix documentation of the default unix socket path used by gotwebd spotted by Paul W. Rankin / rnkn via IRC

Remove unnecessary sched_yield(2). Re-applies commit 6b8a2b8fcd99c4365b1aa9513c0f0149beac2491 which was reverted in commit 82954512f323c8a2d4f89d51be1e6b0f707b6c3a because at the time the change broke the 'search' feature. Quick testing suggests search is now working fine, so let's try again.

tweak previous: when using so many words, might as well mention fetch

tweak the error message shown by 'got send' when ancestry has diverged The previous message steered users towards rebase; nowadays we also have a merge command and send -f. It's tricky to explain all possibilities of what to do next in a single line, but this is probably better than nothing.

show a more useful error when a reference name collides with another If a reference cannot be created because a file is present where a directory would need to be created to accomodate the new ref's name, report a name collision rather than an obscure mkstemps ENOTDIR error. issue found by Lucas