Commits


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@


const-ify string table


don't `goto done' if calloc fails otherwise we call got_repo_close with repo being NULL and segfault there. ok stsp


cache a list of known pack index files when the repository is opened Avoids overhead due to readdir calls while searching a pack index. ok op@


make got_repo_match_object_id_prefix() reject overlong input strings suggested by + ok naddy


handle reference arguments which look like short object IDs Match command line arguments against references before matching object IDs. This makes it possible to use reference names that happen to match a short object ID. For example, a branch called "11ac" could not be diffed in OpenBSD src.git which happens to contain commit IDs that begin with hex digits 0x11ac. A bogus error would be reported in this situation: $ got diff master 11ac got: ambiguous object ID ok naddy


factorize imsg_clear calls after imsg_flush failures imsg_clear frees and closes resources allocated as part of enqueueing imsgs so it's a no-op after reads. discussed with and ok stsp@


reuse existing deltas when creating pack files tested by thomas, naddy, and myself


wrap overlong lines


add O_CLOEXEC (close-on-exec) to openat(2) calls suggested by millert ok thomas_adam


add O_CLOEXEC (close-on-exec) flag to open(2) calls suggested by millert ok thomas_adam


cache raw objects in order to speed up gotadmin pack


use RB_TREE instead of STAILQ to manage packindex bloom filters; much faster


use a bloom filter to avoid pointless pack index searches


fix pack index cache element rotation; keep often used entries near the front