Commit Briefs

2d9e6abf24 Stefan Sperling

store deltas in compressed form while packing, both in memory and cache file

This reduces memory and disk space consumption during packing. with tweaks + memleak on error fix from op@ ok op@


d7b5a0e827 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@


a44927cc05 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@


67fd684965 Stefan Sperling

reuse existing deltas when creating pack files

tested by thomas, naddy, and myself


64a8571e12 Stefan Sperling

map raw object files into memory while packing if possible


db6960214d 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%.


8bd0cdad05 Stefan Sperling

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

suggested by millert ok thomas_adam



284e766353 Stefan Sperling

remove unused internal raw object API functions


d3c116bf72 Stefan Sperling

cache raw objects in order to speed up gotadmin pack



e65c741086 Stefan Sperling

add missing error checks in got_object_raw_open()



67b631c9e0 Stefan Sperling

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

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




b3d68e7f99 Stefan Sperling

implement 'gotadmin cleanup'


dbdddfee14 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


a859171129 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.


9ca9aafb02 Stefan Sperling

introduce got_object_id_queue_copy()

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






08578a35f6 Stefan Sperling

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

ok millert, naddy