Commit Briefs
convert two files to utf8
ok stsp
do not expect to see a DISCONNECT message in repo processes
The parent no longer sends this message. Perform related cleanup in the shutdown path instead. ok op@
fix gotd segfault in libevent while disconnecting clients
Sending a DISCONNECT message to the repo process and then killing it and freeing its structure won't work. The message ends up on internal libevent queues and will soon crash because we have freed the memory for the event structre. Sending that message is a leftover from the times when the repo procs were persistent.
make edits made to comments count as a log message modification
This supports use of cherrypick/backout without requiring the user to modify the log message of the original commit. ok jamsek, op
fix gotd and gotsh usage() function declaration
"function declaration isn't a prototype" should fix the error seen by tracey@ on sparc64
make gotd parent dispatch handlers more robust during teardown
We have observed gotd exiting after "cannot find client for fd N" errors. If this occurs then we are likely in the process of disconnecting a client session while processing an event from a child process. Treat the above error as non-fatal and stop processing more events from the child process.
tog: reset 1 second refresh rate after starting search
This fixes an issue reported by Mikhail where CPU usage continuously increases if search is started after the refresh rate has dropped from 100ms to 1s by resetting the 1s refresh rate if search is started after fast initialisation has finished. This is not needed in limit_log_view() because the 1s refresh rate is reset in draw_commits() once the screen is redrawn (i.e., commits_needed == 0). Tested by and based on initial patch from Mikhail. ok stsp@
drop double process name from some gotd logs
i.e. "listen: listen: shutting down" -> "listen: shutting down" the procname is already prepended by vlog() ok jamsek
got: use intermediate pointers to plug leak on realloc
And save worktree_branch_len for reuse. ok stsp@ and op@
fix interaction of 'got fetch -b', got.conf, and work tree
Without branches in got.conf for a remote, and without -b/-R options, the fallback to HEAD would only work when not invoked in a work tree. With this fix 'got fetch' should behave as described in the man page. The -b option now overrides both got.conf and the fallback to the work tree's branch. And fallback to HEAD works as expected when invoked in a repository. Also, do not strictly require remote repositories to provide a branch from the refs/heads/ namespace. In such cases users should be able to use -R to select something to fetch. ok jamsek
make 'got import' -I option match directory names with a trailing slash
reported by Lucas on IRC, who sent a patch which this commit was based on ok jamsek
fix gotd build
Add missing srcs and update got_repo_read_gitconfig() to be consistent with recent changes. ok stsp@
improve 'got fetch' behaviour when work tree's branch is not on server
Only fetch the work tree's branch if the -b option is not specified. This keeps -b functional as an override when invoked in a work tree. Our previous changes did not consider that got.conf is also a source of lists of branches to fetch, and that -b is supposed to work as an override of any default behaviour. We were implicitly appending the work tree's branch as if it was mentioned as an override on the command line, which was wrong and based on a misunderstanding of the intended behaviour. Without -b on the command line we obtain a list of branches to fetch from got.conf and use this list if it is not empty. The repository's HEAD will be fetched only if neither the -b option, nor got.conf, nor a work tree tell us what to fetch. Make the man page more clear by moving the explanation of the default behaviour into the main section of 'got fetch', leaving the -a and -b option descriptions free of such details. ok jamsek
move comment
it describes bump_base_commit_id_everywhere, not its per-entry callback bump_base_commit_id.