Commit Briefs
fix occasional test failure in test_log_show_base_commit
Patch by jamsek with a request to commit. Thanks!
prevent ncurses signal handlers from being installed while using mock-io
Aborting tog regress with Ctrl-C would trigger a "tty" pledge violation via the built-in ncurses handler for SIGINT, installed by newterm(). Install tog's own signal handlers earlier to fix this.
rename a few pop_id to pop_idx
leftover from 79c49d8454.
fix some non-idiomatic calls of the cancellation callback
This callback could return any error code. Do not mask all such errors as cancellation.
regress: nix 'set -A' kshism from tests
As reported by naddy, this is a non-portable Korn shell construct. Instead, use the one argument array then make faux space-delimited string "arrays" for the other ids; they can still be indexed with pop_idx. improved by + ok naddy@
load tog's worktree base commit marker in the log thread for startup speed
Walking the whole file index can take some time. Avoid delaying the perceived start-up time of tog by reading the file index in the background log thread. Problem pointed out by op@ with fixes from + ok jamsek
tog: change base commit marker to the commit colour
The marker annotates the commit, so it makes more sense to visually tie it to the log message than the author. Patch by stsp, I just removed a block. ok stsp@
got: improve reporting accuracy in branch listing output
As suggested by stsp, show the out-of-date symbol for the work tree branch if it is not only out of date in relation to the branch tip but also if it contains mixed commits. Update regress and add new test to check for this case. Also, explain the mixed commit condition of * and ~ markers denoting work tree state in got(1) branch -l docs. ok stsp@
tog: show work tree base commit marker in log view
If tog is invoked in a work tree, prefix the base commit log message summary line with a '*' if the work tree is up-to-date, and with a '~' if the base commit is not up-to-date with respect to the branch tip or it contains mixed commits. While here, plug a couple worktree leaks in cmd_ref() and cmd_tree(). ok stsp@
tog regress: fix date seconds discrepancy in expected diff view
Fixes occasional test failures. Patch by jamsek
tog: add support for commit keywords
Allow keywords as arguments to options and operands for the blame, diff, log, and tree commands. Also, return 1 when exiting tog with error rather than 0 so regress can discern success from failure. ok stsp@
use a separate .cvg meta data directory for cvg(1) work trees
This prevents mixing the use of got and cvg clients in the same work tree. Avoids confusion going forward while cvg differentiates itself further. tog(1) and gotadmin(1) remain compatible with both work tree formats. These tools only read work trees to locate the corresponding repository.
got: enable more commands to accept commit keywords
More work adding commit keyword support to the blame, cat, ref, tag, and tree commands. With this, all Got commands that take a <commit> option argument or operand now support keywords. Regress flub saved by op! fixes + ok op@