Commit Briefs
got: load editor with backout/cherrypick commit log messages
Create new logmsg references used to populate the editor with the log messages of backed-out and cherrypicked commits when 'got commit' is run. We use versioned path state heuristics during revert and commit commands in an effort to ensure the editor is only populated with the log messages of backed-out and/or cherrypicked commits involving paths with local changes that are being committed. This is an implementation of an initial idea and algorithm designed by stsp. inputs, improvments and ok stsp@
avoid traversing enumerated commits more than once in got-read-pack
Keep track of parent commits that will be processed as part of looping over the commit queue provided by the main process, and do not add these commits to the queue again. Fixes pointless traversal of commits on the queue which will simply be skipped. The end result is the same either way. ok tracey
fix missing commits in pack files created with packed object enumeration
got-read-pack forgot to send a tree-enumeration-done message to the main process if the tree of a given commit had already been traversed. The main process would then not add the corresponding commit to the pack file, even though it should be added. Found while using 'got send' towards gotd in order to populate an empty repository on the server with non-trivial history, where some commits always ended up missing due to this bug. ok tracey
got merge: call the right usage_*() function
Diff from Mikhail, thanks!
don't print empty line when exiting tog
Reported and tested by dv: rather than print a new line to avoid clobbering the shell prompt when exiting tog with the alternate screen buffer disabled^, adopt naddy's vi(1) solution by looping through visible views to delete the topmost line, which inserts an empty line at the bottom so we don't need to print an empty line to ensure a clean prompt. ^: xterm -xrm 'XTerm*titeInhibit: 1' or run tog in the console ok naddy@
tog: display action report on user toggleable event
If the diff algorithm, ignore whitespace-only changes, force ASCII text diff, show committer/author, or reference sort order keymaps are toggled, report action to the bottom left of screen. Based on initial patch by Mikhail. ok + tweaks op@
tog: fix typo that makes condition always false
In view_loop(), we initialise at a refresh rate of one tenth per second before dropping to one second updates; the reduction was never hit due to the typo. Reviewed as part of the following diff adding action reports to user events. ok op@
gotsh: move apply_unveil right after the first pledge
and while here drop the second pledge() call since unveil is already locked by apply_unveil. ok stsp
add a test for ssh connections without a repo path argument
would have caught the fixed failure in disposing early-closed connections in gotd. ok jamsek, stsp
gotsh: validate with parse_command before connecting
Export parse_command (now got_serve_parse_command) from lib/serve.c and use it to validate the command line in gotsh instead of just checking that the -c argument starts with 'git-receive-pack' or 'git-upload-pack'. Invalid usage now always fails before opening the socket, while before it wasn't always the case. This also means that invalid usage doesn't count towards the limits. ok jamsek, stsp
gotd: disconnect on client EOF too
Otherwise gotd keeps the (client-closed) sockets around and may prevent new connections from being established since they still count for the limits. ok jamsek, stsp