Commits


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.


add a simple test for 'got diff' against CRLF files


sync files from diff.git ed9312f04bcebc7aee4f7e7d96d6ec467cb9bb66


`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@


tog: refactor key map -> new view initialisation Deduplicate view initialisation boilerplate and simplify new key map view requests with dispatch routine. Includes improvements suggested by stsp. ok stsp@


add a way to ignore author and remote repository info found in Git config files ok op@


drop (needless?) sleep(1) in status.sh ok stsp


fix `got patch -R' when using diff3 merge `got patch -R' fails spectacularly when applied on a diff that contains the info of the original blob for the diff3 merge machinery since it tries to apply the reverse of the patch to the old blob. change it to run the patch (_not_ reversed) on the old blob and then swap the arguments to got_diff3_merge which gives us the correct reverse merge of the diff. while here add a test case too. reported by naddy, discussed with and ok stsp@


make mandoc -T lint got.1 happier; pointed out by Mark Jamsek


document use of GOT_AUTHOR by 'got rebase' and 'got histedit'


make 'got histedit' fetch author info from Git configuration as a fallback


do not require local author info during 'got rebase' My commit to reset committer info during rebase was too strict in some use cases. Even when simply forwarding a branch the rebase operation could now fail if GOT_AUTHOR is not set. To fix this, fall back on existing commiter information if no author is configured. And try to obtain author info from Git config in case GOT_AUTHOR is not set. Problems reported by Mikhail.


fix name clash in gotwebd Rename GOT_PACK_NUM_TEMPFILES in gotwebd, since it clashes with a name already used in lib/repository.c. ok tracey


tog: uppercase alpha key maps that open new views ok stsp@


tog: reset view->offset when clearing log view state Don't move the selection cursor due to a bogus offset after closing child views following use of 'B', C-l, and backspace log view key maps. ok stsp@


tog: use view->resize idiom to ensure log is populated Replace view->mode == TOG_VIEW_LOG checks for requesting commits to populate the log view with calls to view->resize(). ok stsp@


reset committer during rebase and histedit ok op@


call time(3) just once in commit_worktree(), not twice


tog: populate new child view log lines when switching split When switching a child log view from a h- to a v-split, new log lines are empty. Rather than (mis)trace height and (not) call request_log_commits(), let resize_log_view() do the math and request commits if needed to draw new lines. ok op@