Commit Briefs

Stefan Sperling

inline struct got_object_id in struct got_object_qid

Saves us from doing a malloc/free call for every item on the list. ok op@


Stefan Sperling

stop relying on commit cache for good performance of got_object_id_by_path()

Instead of internally opening and closing the same commit object over and over again, require callers to pass an open commit object in. Avoids an inherent dependency on the commit object cache for reasonable performance. ok op@


Stefan Sperling

reuse existing deltas when creating pack files

tested by thomas, naddy, and myself



Stefan Sperling

avoid the creation of new temporary files whenever a packed object is read

This speeds up the creation of pack files by about 30%.


Stefan Sperling

add O_CLOEXEC (close-on-exec) flag to open(2) calls

suggested by millert ok thomas_adam








Stefan Sperling

implement 'got diff -c' for diffing commits with optional filtering by path

Need for filtering by path sugggested by kn@ ok naddy@




Stefan Sperling

implement 'gotadmin cleanup'


Christian Weisgerber

switch from SIMPLEQ to equivalent STAILQ macros

The singly-linked tail queue macros were added to OpenBSD 6.9 and are more widely available on other systems. ok stsp


Stefan Sperling

raw object size should not include the length of the object's header

This way, the size of a raw object is the same regardless of whether the object was found in a loose object file or in a pack file.


Stefan Sperling

introduce got_object_id_queue_copy()

This will be required by a future 'gotadmin pack' command.






Stefan Sperling

make close(2) failure checks consistent; check 'close() == -1' everywhere

ok millert, naddy


Stefan Sperling

make fclose(3) failure checks consistent; check 'fclose() == EOF' everywhere

ok millert, naddy