Commit Briefs
Release 0.74 (tags/0.74)
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@
fix pipe usage for linux
This uses the correct read and write ends of the fds returned by pipe(2) on linux. It also moves away from creating FILE* streams with fdopen and reading the stream with buf_load (which performs a fstat, and breaks due to a zero length file size on linux) by instead reading from the fd itself. Reported by abieber@, with assistance from stsp@ ok stsp@
histedit: make sure mesg is only used after pick or edit
It doesn't really make sense to use mesg after a fold or drop, or after another mesg. it currently "works" as intended, but the behaviour is confusing and not useful, better abort the operation as it's probably not what the user intended. Suggested by and ok stsp@
improve documentation of the histedit 'mesg' command
prompted by a question by op@
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@
portable: regress: fix sed parsing
When making sed's command-line flags portable, don't split on $@ before parsing it, as this won't preserve the original string which needs passing to sed unmodified if it's never had to be changed.
portable: regress: add test stage to all runs
Whenever a CI change is made, also run the test suites. This is enabled for just Ubuntu and FreeBSD for now.
portable: regress: improve sed handling
When massaging sed command strings, to handle the differences between "-i ''" not meaning the same thing on non-BSD systems, this previously used a bashism to determine the positional arguments. Instead, defer to using a loop which doesn't rely on bashisms.
portable: regress: remove backticks from string
Remove erroneously-placed backticks when describing a lack of GNU coreutils.
portable: regress: make OS-detection sh-compatible
Don't rely on $OSTYPE being available, which it isn't in strict POSIX mode. Ubuntu's sh is often alised to dash, and hence this fails. Instead, default to using the output from 'uname'.
portable: ci: add ubuntu
Add Ubuntu as a dedicated CI environment. By default, sh is aliase to dash which often provides interesting challenges for portability, so making this work here is a good thing as mistakes will be spotted earlier.