Commit Briefs
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
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
make got_repo_match_object_id() filter tags by the requested object type
Potentially this function could return objects of a type that was not requested. Problem found by code inspection. This change does not affect any of our existing tests.
provide separate send {} and fetch {} configuration blocks in got.conf
Feature requested by naddy. ok naddy, who also suggested some tweaks that will arrive shortly
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