changes for 0.87

sync dist file list

in the delta-cache debug report, show the size of the largest delta seen

show how to fetch a pull request in got.1 pull request example section

fix sending merge commits; with a regression test by James Cook

allow no-op merge commits to be created Requested by James Cook

fix 'got commit' using a bad parent commit ID when worktree is out-of-date Problem reported by James Cook with reproduction scripts Regression test case by jamsek, as a simplified version of James' scripts fix tested + ok jamsek

tog: lock mutex if leaving view_loop() on a script read error ok stsp@

tog: tweak blame tog_view deallocation fix from 2ca2f982 Both view_close() and close_blame_view() are called from view_loop() irrespective of error, so only call these from cmd_blame() to ensure the tog_view structure is not leaked when open_blame_view() errors. ok stsp@

tog: blame regress and new test framework wait instruction Basic blame view test required adding the WAIT_FOR_UI instruction to delay screen dumps till the ui has been completely rendered. This will also apply to future test cases such as limited log views and further blame test cases. ok stsp@

tog: rename regress test script envvar As per stsp's idea: use a more descriptive name, and use the TOG_TEST_SCRIPT envvar both in tog.c and the test scripts. ok stsp@

tog: basic diff view test and fix hardcoded script path ok stsp@

sync dist file list

add some missing libraries to DPADD and fix up some outdated deps

gotsh no longer needs to link to libz and libm

gotctl no longer needs to link to libz and libm

gitwrapper no longer needs to link to libutil, libz, libm, and libevent

remove unused function got_read_file_to_mem()

remove dependency of gitwrapper, gotctl, and gotsh on object_parse.c Move some functions from object_parse.c into hash.c. These functions either require hash.c code anyway or contain object ID implementation internals. Add a new file object_qid.c, for got_object_id_queue and got_object_qid. This new file must be linked to virtually every program.

remove dependency of gitwrapper on gotd/auth.c Move gotd_auth_parseuid() from auth.c to parse.y as gotd_parseuid(), and remove auth.c from the list of source files required by gitwrapper.

remove dependency of gitwrapper on gotd/listen.c Move gotd_find_uid_connection_limit() from listen.c into parse.y and remove listen.c from the list of source files required by gitwrapper.

significantly reduce the amount of code linked into gitwrapper By moving got_serve_parse_command() from lib/serve.c into lib/dial.c as got_dial_parse_command(), we can significantly reduce the amount of symbols gitwrapper depends on indirectly. As a downside, gotsh now needs to link to dial.c. But it only uses the same parsing routine, and any other routines in dial.c would likely cause pledge violations in gotsh if used. No functional change.

document the S key in tog's online help screen

zap stale tog regress make target spotted by stsp@

tog: plug tog_view structure leak on open_*_view() error ok stsp@