Commits


tog: fix sticky "loading..." status in log view hsplit Don't request commits if the log has completed loading all commits. While here, ensure the correct parent/child view requests commits when resizing a hsplit. Reported by stsp: $ tog S # switch into hsplit mode G # move to bottom and load all commits Enter # open a diff showing the initial import commit - # shrink the diff view by one line; alternatively use + to grow it *log status stuck with "loading..." in the header* ok stsp@


tog: only request commits when child hsplit increases Fix bug introduced in 3c1dfe12b3 that fails to properly populate child log views due to incorrect request_log_commits() calls: (1) when increasing the bottom hsplit in a ref/log splitscreen; and (2) when reopening a child log view after closing a resized child log view: $ TOG_VIEW_SPLIT_MODE=h tog ref return # open log view in bottom split 4+ # increase log (child/bottom) split *new log lines are not populated* q # close log view return *commits are not loaded* ok stsp@


tog: adjust view line offset when resizing hsplit Squish bug that can move the selection cursor offscreen when resizing horizontal splits due to bogus offset: $ TOG_VIEW_SPLIT_MODE=h tog # 80x24 22j return # open diff view in a hsplit tab # focus log (top) split 10+ # increase top split by 10 lines 22j return # open diff view in a hsplit F # toggle fullscreen diff view tab # focus log (parent) view in fullscreen *selection cursor will be off the bottom of the screen* ok stsp@


tog: enable moving to prev/next blame line in diff view Blame/diff view counterpart of log/diff <,.> key maps to traverse commits corresponding to each line of the annotated file from the diff view. Includes fix from stsp@ to work while the file is still annotating. ok stsp@


tog: make 'S' switch split mode irrespective of the view Always switch internal split state and redraw view according to the constraints of the new mode. suggested by and ok stsp@


make 'tog log' error out in shallow Git repositories instead of hanging ok op@


portable: remove stale comments Remove comments which are no longer required.


tog: implement +/- keymaps to resize the focussed split Increase/decrease the currently active split. New dimensions persist for the tog session, irrespective of subsequent closures and new child views. suggested by and ok stsp@


tog: implement global 'S' key map to switch split mode If in a vertical (horizontal) split, switch to horizontal (vertical), and make new split mode persist. ok op@


tog: add C-g/backspace key map to abort compound cmds Problem reported by stsp: 9999j would tie up tog till completed. While here, trim trailing whitespace in tog.1 and make C-g alias existing backspace abort key map for search and G in log view. ok op@ and stsp@


tog: expand horizontal split support to all views With this, hsplits are now available to the same parent/child view combinations as vsplits. Includes OB1 log truncation fix from op@ that was reported by stsp. ok stsp@


tog: remove count prefix timeout and bold output Suggested by naddy. block till non-numeric input is entered, and don't echo in bold. ok naddy@ op@ and stsp@


unconditionally set x/y pointers in view_get_split() suggested by and ok op@


make the diff algorithm used by 'tog diff' and 'tog blame' configurable ok jamsek


switch 'tog diff' and 'tog blame' to Myers diff for speed Make the choice of diff algorithm configurable by diff API users. The got and gotweb programs keep using Patience diffs which are prettier than Myers. But tog should be as fast as possible since it is being used interactively. If performance of Patience diff gets improved later we can consider switching tog back over to it. ok tracey jamsek


tog: fix C-d and G log view keymaps in horizontal split Account for the border so we don't scroll offscreen, and don't unset the load_all flag till all commits have been loaded so we take the correct path in log_move_cursor_down(). ok stsp@


fix fullscreen / split-screen toggle in tog ok jamsek


move remaining got_opentemp's out of blame. ok op@


tog: implement support for horizontal splitscreens Enable all main views to open primary child views in a horizontal split: log -> diff tree -> blame blame -> diff ref -> log Support is yet to be expanded to nested child views and key maps for manipulating split type and size. ok op@ and stsp@


tog: refactor log cursor movement in prep for hsplit Simplify the log input handler by moving (page)up/down and home/end logic into helper routines as we need to perform some checks on these cases when navigating the log view in horizontal splits. ok op@ and stsp@


fix split-screen issue in tog when moving focus from child view to parent view Reported by jamsek: $ tog # term wide enough to vsplit return # open commit f # fullscreen commit tab # should go to fullscreen log, but it splits the screen fix ok jamsek


fix recent regression in tog where split view was not restored after resize ok jamesk


move got_opentempfd() out of lib/diff.c again ok tracey


move got_opentempfd out of blame_open ok stsp@ jrick@


move got_opentempfd out of open_blob. ok stsp@