Commits


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


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@


tog: plug object id leak in resolve_reflist_entry error path ok stsp@


skip memleak_send_basic in sha256 mode, it's expected to fail in that case


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@


regress/tog: log view test for T keymap on worktree entry Coverage for the case fixed in 74bea526c5. ok stsp@


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@


bump version number


CHANGES for 0.107


sync dist file list


do not leak privsep_child memory allocations if sending a stop command fails


make got-read-pack clear its imsgbuf on exit


make got-send-pack clear its imsgbuf on exit


make got-read-tree clear its imsgbuf before exiting in an error case


make got-read-tag clear its imsgbuf on exit in an error case


make got-read-pack clear its imsgbuf before exiting in error cases


make got-read-object clear its imsgbuf before exit in an error case


make got-read-gotconfig clear its imsgbuf before exit in an error case


make got-read-gitconfig clear its imsgbuf before exit in an error case


make got-read-commit clear its imsgbuf before exiting in an error case


make got-read-blob clear its imsgbuf before exiting in an error case


make got-index-pack clear its imsgbuf on exit to avoid leak reports


make got-fetch-pack clear its imsgbuf before exiting to avoid leak reports


plug imsgbuf-related memory leak in got_repo_load()


store ibuf used by got_gotconfig_read() on the stack