Commit Briefs

Thomas Adam

Release 0.74 (tags/0.74)



Thomas Adam

bump version number


Thomas Adam

CHANGES for 0.74


Thomas Adam

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@


Thomas Adam

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@




Thomas Adam

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@






Thomas Adam

improve documentation of the histedit 'mesg' command

prompted by a question by op@


Thomas Adam

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@


Thomas Adam

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@


Thomas Adam

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@


Thomas Adam

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@



Thomas Adam

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.


Thomas Adam

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.


Thomas Adam

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.


Thomas Adam

portable: regress: remove backticks from string

Remove erroneously-placed backticks when describing a lack of GNU coreutils.


Thomas Adam

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'.


Thomas Adam

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.