Commit Briefs
refactor got log -d and tog diffstat to compute diff once
This eliminates the previous performance cost by making 'got log -d' and tog diff view compute the diffstat while building the diff in a temp file like we do with 'got diff -d'. Also, keep the current 'got log -d' UI as per stsp's suggestion. ok stsp@
don't use plural noun after 1 in diffstat total
Use singular form when appropriate; for example, turn the top into the bottom: 1 file changed, 1 insertions(+), 1 deletions(-) 1 file changed, 1 insertion(+), 1 deletion(-) ok op@
tog: fix {first,last}_displayed_line dead store
Both are already assigned just above in open_diff_view() ok op@
got: minor refactor of got_pathlist_free() API
Accept flag parameter to optionally specify which pointers to free. This saves callers looping through the list to free pointers. ok + fix stsp@
got: expand diffstat -d option to 'got diff'
Like got log -d, add the switch to 'got diff' to display a diffstat of changes; as per stsp's suggestion, we always include diff output with the diffstat. Disabled in gotwebd (for now :) Includes tweaks from op@ ok stsp@
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@
got: implement diffstat for got log and tog diff view
Add new got_diff_blob_cb() implementation to compute added/removed line metrics for a given diff. This enables displaying a diffstat with 'got log -d'. As per suggestion from stsp, change tog diff view to display the diffstat by default. 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@
tog: always echo input prompt to bottom left of screen
Irrespective of the active view, always echo to the bottom left of the parent view. ok op@
tog: fix typo that breaks log search when in hsplit
Ironically, the typo "blocks" log search when in hsplit because we block input on the wrong view! Pass the proper "v" view to nodelay() calls. ok 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@
backout Make & command in tog's log view display "searching..."
The limit feature is more than just a search operation, tog's man page has been updated accordingly.
Make & command in tog's log view display "searching..." while loading commits.
This command acts like a search operation, and the display should reflect that.
tog: open help in fullscreen irrespective of view configuration
Prompted by a suggestion from stsp to make the help view distinct rather than follow the default behaviour of established views. Occupying the fullscreen seems to be a somewhat established convention for TUI apps. ok stsp@
drop unconventional got_object_commit_dup() routine
Replace with got_object_commit_retain() to increment commit object reference counter. suggested by and ok stsp@
tog: don't embed utf8 glyphs into tog.c source code
Reported by stsp: Embedded utf8 precludes developers running C locales from browsing the code. Fix was suggested by stsp with hints from the tmux(1) codebase. ok stsp@
tog: refactor search setup into tog_view function pointers
Suggested by stsp. While here, add declarations for new help view routines. ok stsp@