Commit Briefs

Stefan Sperling

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.


Stefan Sperling

move privsep code from pack_create.c into new file pack_create_privsep.c

Needed by future gotd(8). ok op@


Stefan Sperling

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@


Stefan Sperling

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@



Omar Polo

mark got_error_fmt as printf-like and fix the arisen errors

ok stsp@


Stefan Sperling

implement support for commit coloring in got-read-pack for speed

ok op, tracey


Omar Polo

build with -Wwrite-strings

Throwing this into the mix for a while, we can always get rid of it again if it becomes annoying. No objections from stsp@



Omar Polo

build with -Wmissing-prototypes

ok stsp@


Stefan Sperling

let got-read-pack be explicit about whether it could enumerate all objects

This allows the main process to avoid looping over all object IDs again in case the pack file used for enumeration is complete. ok op@



Stefan Sperling

Bring back object enumeration inside got-read-pack as a fast path.

The problem that was found in the earlier version has been fixed. ok op@


Stefan Sperling

revert object enumeration in got-read-pack for now; needs more work

This implementation marked commits and trees as enumerated before all trees which they depend on were enumerated. This behaviour leads to incomplete pack files when a tree is only partially packed and got-read-pack hits a missing tree entry as a result. The algorithm must be reworked such that packed leave nodes are marked enumerated first, then bubble-up. Found by op@


Stefan Sperling

free id and path in load_packed_tree_ids() on error, else they would leak

pointed out by op@