Commit Briefs

Stefan Sperling

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@


Omar Polo

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



Mark Jamsek

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@


Mark Jamsek

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@


Mark Jamsek

fix uninitialised fildes variables in libexec helpers

Reviewed and uncovered as part of the diff in the forthcoming commit (pathlist API refactor). ok stsp@


Mark Jamsek

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@


Stefan Sperling

tweak a gotd regress test to cover incremental 'got fetch'

Previously the gotd tests were only running fresh clones.


Stefan Sperling

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


Omar Polo

gotwebd: templateify gotweb_render_tag

ok tracey@


Omar Polo

gotwebd: templateify gotweb_render_tags

ok tracey@


Stefan Sperling

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@


Stefan Sperling

adjust a misleading error message in got_object_raw_alloc()

ok op@


Stefan Sperling

fix *size not being passed out of read_packed_object_raw()

ok op@


Mark Jamsek

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@