tog: make patience the default diff algorithm As discussed on IRC. It makes nicer diffs and the performance hit should only be noticeable with the odd large diff. It might also be a motivator in trying to speed up the patience implementation. 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: 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@

tog: add horizontal scroll support to the tree view Suggested by op. tog now supports hscroll in all views so move corresponding keymap docs in tog(1) to global space (this was already the case in tog runtime help). While here, remove some copypasta with a new subroutine to handle hscroll input. ok op@ and stsp@

sort ENVIRONMENT entries in got.1 and tog.1 ok jamsek

tog: add mutt-like =/* keymaps as home/end aliases Also, separate g/G from home/end in the manual and runtime help text as only the former accept a prefixed count modifier. Based on initial diff from Mikhail. ok stsp@

make 'tog log' display the committer handle by default, '@' switches to author People coming from CVS might not expect names of patch contributers to show up in commit history listings, so make things easy for them. discussed with op@

document global tog options earlier; suggested by op@

sync usage with reality The -h and -V/--version flags must be given before the command; with those flags the command is actually optional, but don't over-complicate the usage string with these nitpicks. ok/improvements stsp@

improve documentation of the tog limit feature, previous doc was misleading

tog: implement runtime help accessible via H,F1 keymaps Original idea inspired from discussion with tb, tobhe, and stsp at g2k22: display view-specific help, with option to toggle display of full key map reference when {H,F1} is pressed again inside the help view. Includes improvements suggested by stsp. ok stsp@

tog: add new log view limit feature to filter commits Use the & key map to enter a pattern with which to limit the displayed commits to those matching the provided pattern; similar to less(1) and mutt's limit feature. Includes various tweaks from op. ok plus fixes from op@

use Xo/Xc in the man pages Patch by Josiah Frentsos; ok kn@

Group options in accordance with style(9) patch by Josiah Frentsos

tog: keymaps to jump to next/prev file/hunk in the diff Add () and {} key maps to navigate to the previous and next file or hunk in the diff. This required changing Got's diff API to collect line type metadata in addition to the line offsets already produced as prompted by stsp. ok stsp@