Commit Briefs
move pack indexing code into new file lib/pack_index.c
Prepares for sharing code between got-index-pack and future gotd(8).
let callers of got_pack_create() configure rate-limiting of progress reporting
Needed by future gotd(8), where progress reports will be sent to a network socket, rather than a local terminal.
move privsep code from pack_create.c into new file pack_create_privsep.c
Needed by future gotd(8). ok op@
move got_opentempfd() call out of got_pack_create()
Future gotd(8) needs to run got_pack_create() in a chroot environment, so we can no longer open new temporary files inside got_pack_create(). ok op@
make got_pack_create() write to a file descriptor instead of a stdio FILE
The old code required a seekable output file. This conflicts with requirements of future gotd(8), which will write pack file data to network sockets. ok op@
simplify the way 'got patch' opens a tempfile when reading from stdin
Also add basic test coverage for reading patches from stdin, while here. ok op@
move declaration of got_privsep_child out of got_lib_privsep.h
This declaration is the only reason why got_lib_privsep.h must be included in order to use got_lib_repository.h. Moving this declaration will allow for cleaning up unnecessary includes of got_lib_privsep.h.
move code for reading Git's config file into new file read_gitconfig_privsep.c
The end goal here is to remove the dependency of repository.c on privsep.c during compilation.
move functions which open objects into new file object_open_privsep.c
For the future, this will make it possible to provide alternative implementations of functions now stored in object_open_privsep.c. This will probably be needed by future gotd(8) which runs inside a chroot(2) environment and without the "exec" pledge(2) promise, making it impossible to run libexec helpers on the fly. Details of this design are not yet settled, but moving functions into a separate compilation unit won't hurt in any case.
sync usage with reality
The -h and -V/--version flags must be given before the command; with those flags the command is actually optional, but don't over-complicate the usage string with these nitpicks. ok/improvements stsp@