Commit Briefs
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
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@
use a caller-specified size limit for mapped files in got_object_raw_alloc()
Without this we end up being confused about whether a raw object has been mapped into memory, leading to crashes. ok op@
tog: add mutt-like =/* keymaps as home/end aliases
Also, separate g/G from home/end in the manual and runtime help text as only the former accept a prefixed count modifier. Based on initial diff from Mikhail. ok stsp@
util/got-build-regress.sh: simplify lockfile cleanup
trap on EXIT too so the lockfile is deleted on quit (both successful and not.) While here simplify a cd too. ok stsp@