portable: linux: add libmd On some systems libmd isn't explicitly implied, so detect this via pkg-config at configure time. Problem reported by @stsp

zap stale tog regress make target spotted by stsp@

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

remove outdated information from README

release tog_io regress mock term resources in main() ok stsp@

update regress test info in README

make tog regress run with pledge active ok jamsek

when aborting rebase/histedit/merge, unlink files added by merged changes Otherwise we leave unversioned files behind in the work tree which may interfere with new attempts to rebase or merge the changes again. Problem found by + ok naddy@

got: flush stdout before printing the error in main() Since standard error is unbuffered, it could happen that the error string is printed immediately while the output from the subcommand is stuck in a buffer and written later. So flush() standard output before printing the error message. Problem reported by naddy@, ok stsp@

style nits from op@, thanks!

make 'got revert' and 'got rm' work on non-existent directories problem found by robert@ ok jamsek, op

fix rebase/histedit -a leaving some files on the temporary branch The commands 'got rebase -a' and 'got histedit -a' were checking out files from the wrong commit. Make them check files out from the commit we are switching the work tree to, as intended. Avoids spurious merge conflicts when the work tree is later used for another rebase operation. It also makes 'got update' right after 'rebase -a' a no-op, as it should be. Problem found by naddy@ while rebasing jca's llvm15 branch ok op, jamsek earlier version

update the base commit ID of unmodified files if the blob ID matches This avoids having to run 'got update' after operations which run checkout_files() and where a file happens to have the same blob ID but its base commit differs from the commit we are updating to. Found while investigating a bug report by naddy@ ok op, jamsek (earlier version)

tog: implement automated test harness Add framework for scripting tog tests by capturing screen dumps to compare with expected output. Includes some preliminary log view tests but lots more tests are needed to cover diff, blame, tree, ref, and help views. ok stsp@

make gotd/gitwrapper start up even if a repository is missing on disk This should result in more useful behaviour when gitwrapper runs and repositories listed in gotd.conf do not yet exist or do no longer exist.

fix spurious empty packfile error from gotd when rewinding a branch ok op@

consistently close the struct repository on every cmd_*() Spotted while looking for leaks using Otto' malloc() new leaks detection. Harmless in practice since we just forgot to call got_repo_close() when terminating in some cmd_*() functions, but still a leak. ok stsp@

free fileindex entry upon add_entry() failure Very unlikely (an occurrence of it would mean that got produced an invalid fileindex) and harmless anyway since we would just terminate, but a leak is still a leak. ok stsp@

grammar fix for parse.y error message

reject overlapping protected branch vs. tag namespaces ok op@

gotd.conf: free STRINGS in all code paths ok stsp@

update TODO list

gotd.conf: fix memleak in `protect' error path and disallow dups too ok stsp@

add support for protecting references against 'got send -f' to gotd ok op@

unfold line