Commit Briefs
document that the log -d option implies log -P
We did consider making -d and -P options conflict but doing so would not be very helpful. Instead, document -d as a superset of -P. ok op, jamsek
gotwebd: fix branches modification time with show_repo_age off
If show_repo_age is set to off, got_get_repo_age() returns without setting the timestamp. got_get_repo_age() is also used by the branch listing to show how old they are however, and we end up rendering the stack garbage. Instead, respect `show_repo_age off' one layer above, and always return a timestamp in got_get_repo_age(). While here, initialize the timestamp to zero so it's set also in case of failures. Issue reported on IRC by xs, thanks!
tog: fix log view search infinite loop
When the current matched and selected entry is the last loaded commit, we keep looping the same code path because search_entry is always NULL. Before poking the log thread for more commits, set search_entry to the currently selected commit, which is where the search resumes. Patch by Mikhail
got: regress for log -x keyword and log -dPp combinations
Plus multiple copypasta fixes where I was cmp(1)ing stdout instead of stderr! Fortunately, we were doing the right thing despite not checking it properly. The log -dPp test is from op@. ok + tweaks op@
fix 'got log -dPp' diffstat duplication bug
Only collect changed paths once if both -d and -P are specified; we already checked for -d and -p. Reported by Lucas on IRC. Regress for this and the previous (got log -x keyword) commit still due. ok stsp@ and op@
got: allow 'got log -x' to accept keywords
Suggested by Lucas on IRC. ok stsp@ and op@
bump the deltify table resize step
By incrementing the resize step from 64 to 256 deltifying takes less time on modestly sized files; the resize is still a small number instead of a fraction of the current table size (which would be more usual for a hash table) since this code is also used in gotd. ok stsp
use INT32_MAX rather than INT_MAX for GOT_FILEIDX_MAX_ENTRIES
it's a different way to spell the same number, but it's more evocative since the on-disk format is 32 bits wide. ok stsp
speed up read_fileindex_path()
Use a local buffer instead of calling reallocarray() every 8 bytes; the speed up is measurable. The downside is that we're now limited to paths long at most PATH_MAX bytes, but since this is the fileindex it's not an issue in practice. ok jamsek stsp
allow modified files to be deleted during merges if content exists in the repo
This makes histedit folding work when a file is modified by commit A and then deleted in commit B, with A being folded into B. Problem reported by naddy@
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@