Commit Briefs
fix logging of fcgi_send_response
as originally intended by tracey@
gotwebd: handle partial writes
fcgi_send_response can end up trying to send big amount of data, in particular when serving blobs. if a write failure occurs, gotwebd and httpd go out of sync and "bad stuff happens". debugged with and ok tracey@
gotwebd: simplify got_output_file_blob loop
there's no need to distinguish between plain text blob and a binary one in the output, just send it chunk by chunk. ok tracey@
warn about the interaction between got patch -p and -c
suggested by stsp@
got patch: add -c flag to apply at a specified commit
it's useful for e.g. to apply old patches that weren't generated by `got diff' or git-diff(1) and so lacks the metadata needed for the 3-way merge. manpage improvements from and ok stsp@
simplify got_patch/apply_patch to call reverse_patch in one place once
Current code is overly complex; it looks if the diff *might* use diff3 merge to postpone reverse_patch until we know for sure. Instead, just reverse_patch in apply_patch once we know if merge *is* used or not.
`got patch' pledge early
ok stsp@
got patch: error if patchfile isn't a regular file
`got patch' cannot read patches from non-regular files for obvious reasons. However, it could crash in sendmsg because pledge doesn't allow to send file descriptors referring to directories. So, restrict `got patch' to operate on regular files only and fail otherwise. This still allows to read patches from symlinks since they're resolved at open(2) time and the file type check is performed after. There may be a marginal usefullness in reading patches from fifos, but the current code doesn't allow that anyway since got-read-patch needs a seekable file descriptor anyway. ok tracey@
fix off_t type mismatches
off_t is a signed type and depending on the platform, it can be "long" or "long long", so cast to long long for printf(). ok stsp
tweak cmd_info; no functional changes intended
* don't allocate unused pack_fds * drop wpath, cpath, proc, exec and sendfd pledge promises * close the worktree ok stsp@
don't undef GOT_AUTHOR in regress
unset only in the subshell so further cose is unaffected. ok stsp@
use GOT_IGNORE_GITCONFIG in regress
fixes test_rebase_no_author_info when a valid ~/.gitconfig is found. ok stsp@
read_gitconfig: fix GOT_IGNORE_GITCONFIG case
set gitconfig_remotes to NULL to avoid a double-free, and reset the global author name/email fields too. ok stsp@