Commit Briefs

1a481ef4f1 Thomas Adam

portable: release 0.107 (tags/0.107)


3acc92cbbe Thomas Adam

portable: cvg add got_compat.h

Needed to compile most things on -portable.



f6852d460b Thomas Adam

make 'got import' output independent of readdir(3) entry order

ok jamsek


35740e3fca Thomas Adam

add a TODO item for 'gotadmin cleanup'


fdbddcd4b0 Thomas Adam

make seq(1) invocations in test_log_commit_keywords() portable

The OpenBSD version of seq defaults to an increment value of -1 here. On Debian we have to set the increment value to -1 explicitly. Otherwise, seq produces no output at all and the test fails.


d469c4c219 Stefan Sperling

add more info about the test suite to README.portable

Prompted by questions from Johannes Kastl.


ed4ebda33a Thomas Adam

portable: remove portably-defined headers

These has to be looked for portably. <sys/tree.h> recently reappeared due to TAILQ -> RB_* changes upstream.


7d147f690c Thomas Adam

portable: define HAVE_TREE_H if libbsd found

When using libbsd, ensure that we define HAVE_TREE_H; this means libbsd's <sys/tree.h> is used over the compat version which stops redefinition warnings from libbsd.



a828ca839f Thomas Adam

style(9) whitespace: don't indent got-build-regress.sh cases

ok stsp@


8ecb7fe6a3 Thomas Adam

util/got-build-regress.sh: add missing 'W' to optstring

ok stsp@


8d5493c9d9 Thomas Adam

tog: don't clobber error with got_repo_close() error

While here, style(9) the adjacent block: remove function call from initializer. ok stsp@


fe354d70d4 Thomas Adam

tog: clamp selected idx to avoid showing negative indexes

In the rare case views are smaller in height than the first line number after the view's header lines (i.e., [2,5] depending on the view), we can decrement the selected entry index into negative values; clamp it to 0. Add a log view test case covering this path by opening a child tree view and toggling fullscreen. ok stsp@


9976affb50 Thomas Adam

fix NULL deref when scrolling small tog tree views down

In the rare case a tree view is smaller than four lines in height, the last_displayed_entry is NULL. Check this condition on a scroll down event with j/down arrow or ^f/pgdn to guard a NULL got_tree_entry from being passed to got_tree_entry_get_next() where it is dereferenced. And add a test case covering this path. ok stsp@


eb7ebd1cb0 Thomas Adam

tog: don't mark incorrect base commit in nested log views

If a nested log view is opened, don't reuse the work tree's base commit index from the initial `tog log` invocation because it is based on the initial commit queue. If it has become invalid, an incorrect log view commit entry is painted with the base commit marker. Reset the index whenever opening nested log views so that it is recomputed, and write a regression test to cover this case. ok stsp@


1ac1d97835 Thomas Adam

regress/tog: ref view coverage of tag references

Test for the error case when selecting tags that point to non-commit objects. And test the valid case of selecting nested tags that resolve to commit objects. ok stsp@


13c67f87df Thomas Adam

regress/tog: add basic ref view tests; ok stsp@


85fd8f07c3 Thomas Adam

tog: make ref view selection of non-commit tags non-fatal

Tags can point to all git objects: commits, trees, blobs, and tags. Selecting a tag that points to any object other than a commit causes a fatal error. Instead, report a message to the status line. Similarly, nested tags may resolve to a commit, which currently errors. Instead, keep peeling till we reach the bottom and if it's a commit, use it for the requested view. ok stsp@


696b1a9d2a Thomas Adam

tog: plug object id leak in resolve_reflist_entry error path

ok stsp@



fba1c01f5a Thomas Adam

tog: fix log view race condition evinced by regress

When the commit graph has been traversed, we set the log_complete flag to signal the main thread that we've completed iterating commit history, which request_log_commits() checks and, if set, returns early instead of calling trigger_log_thread(). If called, trigger_log_thread() wakes the log thread, then waits on the log thread to unblock when another commit has been loaded. There's a race between the log thread setting the log_complete flag and request_log_commits() checking it, which causes trigger_load_thread() to wait on a signal that never unblocks because there are no more commits to be loaded. ok stsp@


4cef9d7c76 Thomas Adam

regress/tog: log view test for T keymap on worktree entry

Coverage for the case fixed in 74bea526c5. ok stsp@


59f537777c Thomas Adam

fix NULL deref with T keymap on log view worktree entry

When the log view T keymap is used, the selected_entry is passed to browse_commit_tree() to open a tree view of the repository as at the selected commit, which passes the selected_entry->id member to open_tree_view() to open the commit. The id member, which is a NULL pointer in work tree entries, is dereferenced so we segfault. If the T keymap is used on a work tree entry, use the base commit id instead, which we must have if a work tree entry is selected. ok stsp@


ee41227636 Thomas Adam

bump version number