Commit Briefs

Stefan Sperling

fix path existence check in got_object_tree_path_changed()

A symptom of this was a segfault in 'got blame distrib/miniroot/install.sub' with the OpenBSD src.git from github, reported by jrick. The problem was that the commit graph traversed one commit too far. This could be more easily reproduced with 'got log': got log -c 05f568 -P distrib/miniroot/install.sub Which listed two commits instead of just the first one: 05f568ecc6aadefa1aff9064a29e798874a71409 <-- install.sub first created here 7c0d87f00e480cdf004324dad6f3e6f4418f8f42 "distrib/miniroot" exists in 7c0d87f00e480cdf004324... but not in the parent of this commit. Ensure that we traverse the full path in tree1 even if an intermediate tree2 cannot be opened. Instead of reporting success and a file change if we can't traverse further through tree2, we now hit this failing attempt to open the file 'install.sub' in tree object 180aa33df8d1 (tree1): te1 = find_entry_by_name(tree1, seg, seglen); if (te1 == NULL) { err = got_error(GOT_ERR_NO_OBJ); goto done; } fix tested and ok jrick





Stefan Sperling

use size_t for loop indices to avoid signedness warnings; by emaste@freebsd

Same change as 16aeacf7088d, for subdirectories other than lib/


Yang Zhong

add fd field to got_repository, modify got_packidx_open to use fds

These changes are intended to make got more compatible with FreeBSD's Capsicum. ok stsp


Stefan Sperling

implicitly mark all files in work tree as up-to-date after rebase/histedit

This should always be correct, since rebase and histedit start out with a clean and single-base-commit worktree, and end up committing all changes across the entire work tree when they are successful. tested by jrick and myself


Stefan Sperling

allow editing of log message comments with 'got histedit'

This makes it possible to remove just comment lines from log messages during a histedit operation, leaving the rest of the log message as-is. The behaviour of treating changes to comment lines as no-ops was coded to prevent mistakes during 'got commit/import/tag', where the command will error out if the log message template is not modified. This is not appropriate for histedit because histedit is used to fix such mistakes. ok millert@


Stefan Sperling

add got_error_fmt()

got_error_fmt() could eventually replace got_error_path() which has already been used to construct errors with strings that are not actually paths... ok millert@


Stefan Sperling

add got_error_from_errno_fmt() for more flexibility in error messages

suggested by and ok millert


Christian Weisgerber

replace unprintable characters with '.' before passing them to curses

Otherwise, ncurses will replace them with some printable representation whose width we can't predict, and wunctrl() fails to return the replacement for 0x80..0x9f. ok stsp


Christian Weisgerber

reset tog blame view's scroll position if line count shrinks too much

ok stsp


Stefan Sperling

bump version number


Stefan Sperling

sync distfile list (tags/0.45)


Stefan Sperling

CHANGES for 0.45