Commits


update client state tracking in the gotd parent process The session process takes over the old state definitions under a new name ("session state"). The parent only needs to keep track of whether a client has been granted access, so it only uses two states: NEW, and ACCCESS_GRANTED which is set as soon as the auth process has granted repository access and before the session and repo_read/repo_write children are started. Because 'gotctl info' can no longer observe the session state remove support code for printing it. ok op@


gotd: delete trailing blanks spotted while re-reading


gotwebd: show committer instead of author in BRIEFS


gotwebd: use from/via in gotweb_render_commits too like the previous, show also the committer if different from the author.


gotwebd: make commit page more like `got log' / tog - drop the "diff commit1 commit2" header; it's already showed in the body of the diff. - hide the tree id (not that useful to show.) - show the committer if different from the author. - use From/Via for Committer/Author. discussed with jamsek, stsp, tracey ok jamsek tracey


remove support for showing client capabilities in 'gotctl info' The gotd parent process has lost access to client capabilities. Take the easy way out and remove related code. If needed, client capabilities can still be found in the debug log with 'gotd -v'. ok op, jamsek


tog: fix {first,last}_displayed_line dead store Both are already assigned just above in open_diff_view() ok op@


typo: pass rejectfile--not outfile--to got_ferror() ok stsp@


catch a few missed got_pathlist_append() error checks ok stsp@


typo: zap double semi-colon


do not forget to initialize delta_cache_fd in the session process


remove now unused fields from struct gotd_client


gotwebd: templateify gotweb_render_diff ok tracey@; rebased after recent changes.


got: zap dead variable in add_branch() ok stsp@ op@


add a gotd session process, split off from the parent process The new session process is able to manipulate files in the repository and keeps track of the read/write client session state. The parent process now restricts its view of the filesystem to the absolute path stored in argv[0], and combines this with unveil "x" on this path. As a result the parent process can only re-exec itself. small tweaks + ok op@


regress: strip trailing / from GOT_TEST_ROOT otherwise most test fails because of double "/" ending in paths and tricking some check into thinking that's failed. ok jamsek stsp


regress: use `local' for some variables


add regress for 'got diff -d' and minor output fix Ensure an actual file path is displayed in the 'got diff -d -c commit path ...' case when one of the specified paths is a deleted file. Prior to this, the unhelpful "/dev/null" label was shown instead. Includes some copypasta fixes noted by op. ok stsp@ op@


got: minor refactor of got_pathlist_free() API Accept flag parameter to optionally specify which pointers to free. This saves callers looping through the list to free pointers. ok + fix stsp@


fix uninitialised fildes variables in libexec helpers Reviewed and uncovered as part of the diff in the forthcoming commit (pathlist API refactor). ok stsp@


got: expand diffstat -d option to 'got diff' Like got log -d, add the switch to 'got diff' to display a diffstat of changes; as per stsp's suggestion, we always include diff output with the diffstat. Disabled in gotwebd (for now :) Includes tweaks from op@ ok stsp@


tweak a gotd regress test to cover incremental 'got fetch' Previously the gotd tests were only running fresh clones.


fix tempfile handling in gotd's got_object_raw_open() There was a bug where we reused a file stored in *outfd from a previous call, resulting in a raw object backed by a file but with tempfile_idx -1. This then caused bad confusion during deltification. Fix this by passing tempfd to read_raw() functions and only setting *outfd in case it is actually required, and returning tempfd to the repository tempfile pool otherwise. ok tracey


gotwebd: templateify gotweb_render_tag ok tracey@


gotwebd: templateify gotweb_render_tags ok tracey@