CHANGES for 0.82

make read errors in gotsh serve_write() fatal, as was done for serve_read()

make gotd store own PID after daemon(3), and avoid calling daemon(3) needlessly ok op, jamsek

got: don't leak pathlist in commit and revert commands ok stsp@

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

gotsh: avoid a temporary buffer for the socket path 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

fmt; fold long line

gotwebd: avoid full history traversal in briefs/commits This purposefully breaks the 'previous' button in the commits and briefs page. It's hard to find the parent of a commit since they can only be iterated forward. The way the previous button was generated was to walk the history from the HEAD down to the specified commit. This is costly but more importantly leads to issue when dealing with paths that were deleted from the repository. Discussed with stsp and tracey, ok jamsek.

gotwebd: don't got_ref_list per-commit in got_get_repo_commits It's wasteful since `refs' is already populated before the loop, and released after. It also leaks the content of `refs' the first time the loop is entered. ok jamsek

gotwebd: turn gotweb_get_time_str into gotweb_render_age ok jamsek

gotwebd: refactor gotweb_render_content_type/_file Rework them so that they allow to set the Status header (the HTTP status code; only way since we're behind FastCGI) and optionally a Location. Since they're now unused outside of gotweb.c, mark them as static. They also used to always return NULL so the error is pointless; return the -1 on failure though. While here, rename to gotweb_reply and gotweb_reply_file. ok jamsek

make read errors in gotsh serve_read() fatal and adjust tests accordingly ok jamsek

return GOT_ERR_EOF from pkt.c if a read attempt indicates EOF ok jamsek

only "forward" implicit flush packets in serve_read() if they are expected ok jamsek

make gotd session process accept just one flush packet at a time ok jamsek

sort ENVIRONMENT entries in got.1 and tog.1 ok jamsek

gotwebd.8: sort -d after -D patch by Josiah Frentsos, thanks!

gotd.8, gotwebd.8: new sentence, new line diff from Josiah Frentsos, thanks!

add missing bounds-check in gitproto ref-line tokenizer