Commit Briefs

98297eed5b 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().


65d7451409 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@


9fe0899b90 Mark Jamsek

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

tweaked by + ok op@


80f4db877f Mark Jamsek

tog: plug object id leak in diff view; ok op@


6d6b14e986 Mark Jamsek

tog: plug commit object leak in 'tog tree'; ok op@


9093afe0fa Mark Jamsek

tog: plug colors memleak in log view; ok op@


39ccd01728 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.


2e2450f50c 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@


f641a70732 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


c15576d645 Mark Jamsek

plug line_offsets leak in tog blame view; ok op@


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


2e76d8a7c4 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


7c67cf56d3 Stefan Sperling

fix occasional test failure in test_log_show_base_commit

Patch by jamsek with a request to commit. Thanks!


48bfa43b34 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.



99301cec42 Stefan Sperling

load tog's worktree base commit marker in the log thread for startup speed

Walking the whole file index can take some time. Avoid delaying the perceived start-up time of tog by reading the file index in the background log thread. Problem pointed out by op@ with fixes from + ok jamsek


9e0b562498 Mark Jamsek

tog: change base commit marker to the commit colour

The marker annotates the commit, so it makes more sense to visually tie it to the log message than the author. Patch by stsp, I just removed a block. ok stsp@


6ed9ffec8b Mark Jamsek

tog: plug leak in cmd_log() error path

ok op@


c935fd512b Mark Jamsek

tog: show work tree base commit marker in log view

If tog is invoked in a work tree, prefix the base commit log message summary line with a '*' if the work tree is up-to-date, and with a '~' if the base commit is not up-to-date with respect to the branch tip or it contains mixed commits. While here, plug a couple worktree leaks in cmd_ref() and cmd_tree(). ok stsp@


c4df265eba Mark Jamsek

tog: add support for commit keywords

Allow keywords as arguments to options and operands for the blame, diff, log, and tree commands. Also, return 1 when exiting tog with error rather than 0 so regress can discern success from failure. ok stsp@


df6221c7df Stefan Sperling

use a separate .cvg meta data directory for cvg(1) work trees

This prevents mixing the use of got and cvg clients in the same work tree. Avoids confusion going forward while cvg differentiates itself further. tog(1) and gotadmin(1) remain compatible with both work tree formats. These tools only read work trees to locate the corresponding repository.


6efe6ea96a Mark Jamsek

tog: fix double-free in blame view error path

open_diff_view() has already called view_close() on error. Patch by Josiah Frentsos.


eef262f386 Tracey Emery

Fix for cc1: warnings being treated as errors

/home/got/src/got/tog/tog.c: In function 'draw_tree_entries': /home/got/src/got/tog/tog.c:7307: warning: comparisons like X<=3DY<=3DZ do = not have their mathematical meaning


39c864a48b Omar Polo

avoid strlen in for(;;)

ok jamsek, stsp


563ffc1b6d Omar Polo

got, tog: correctly skip HEAD in build_refs_str()

s[strlen(s)] == '\0' is banally always true, the intent was to not skip refs that starts with "HEAD". style nit / ok stsp@