Commit Briefs

Stefan Sperling

rename got_commit_graph_iter_start() to got_commit_graph_bfsort()

This function begins a breadth-first traversal. The new name makes it easier to distinguish from got_commit_graph_toposort().


Mark Jamsek

ensure tmp file is closed and fix UB in diff error path

As reported by op, we fail to close a tmp file in some diff failure case. Also spotted by op and stsp, set FILE pointer to NULL after fclose(3) failure so we no longer attempt to access the stream or close it again in close_diff_view(). fix plus ok op@ and stsp@


Mark Jamsek

plug leak of commit object in 'tog diff' error path

tweaked by + ok op@





Stefan Sperling

make 'tog diff' release the work tree lock earlier

Avoids 'work tree is already locked' errors from got commands while the 'tog diff' command remains running.


Mark Jamsek

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@


Mark Jamsek

tog: add basic regress for log limit and log search

This required minor changes to tog.c to teach tog the new test instructions and feed it search terms when driven by the harness. More is needed for these features but this provides some basic coverage for the & and / log keymaps. ok stsp



Mark Jamsek

tog: don't show the base commit marker in limit view

The limit commit queue is invariably filled with different commits to the queue containing all commits, so the index of the work tree's base commit in the real queue corresponds to a different commit in the limit queue. As such, the marker is drawn on an incorrect commit. Rather than fix this to draw the marker on the correct commit if it happens to be in the limit queue, don't draw the marker at all in limit view. As pointed out by Mikhail on the list, this information is not wanted in the limit view. Patch and report by Mikhail.


Mark Jamsek

tog: fix log view search infinite loop

When the current matched and selected entry is the last loaded commit, we keep looping the same code path because search_entry is always NULL. Before poking the log thread for more commits, set search_entry to the currently selected commit, which is where the search resumes. Patch by Mikhail


Stefan Sperling

fix occasional test failure in test_log_show_base_commit

Patch by jamsek with a request to commit. Thanks!


Stefan Sperling

prevent ncurses signal handlers from being installed while using mock-io

Aborting tog regress with Ctrl-C would trigger a "tty" pledge violation via the built-in ncurses handler for SIGINT, installed by newterm(). Install tog's own signal handlers earlier to fix this.