Commits


remove trailing whitespace; patch by Josiah Frentsos


read_gitconfig: fix GOT_IGNORE_GITCONFIG case set gitconfig_remotes to NULL to avoid a double-free, and reset the global author name/email fields too. ok stsp@


add a way to ignore author and remote repository info found in Git config files ok op@


comment tweak


got_repo_pack_fds_close: don't close(0) got_repo_pack_fds_close will try to close all of the GOT_PACK_NUM_TEMPFILES fds, even the ones that didn't manage to get a value from got_opentempfd(), which would result in a close(0) if we do not initialize to -1 here.


Make sure got_repo_pack_fds_close() frees a malloc'ed pointer. Found by llvm's scan-build (bad free). OK stsp


Don't chug along if repo format version is unsupported. Found by llvm's scan-build (dead store). OK stsp


portable: lib/repository.c: fixup merge It seems as though a merge from some time ago had left some stale changes in place. This brings the two files between upstream and portable back in-line. Noticed by stsp@


portable: add back sys/queue.h Now that the handling of including sys/queue.h is better, there's no need to remove those lines from the source. Copy the location of those original sys/queue.h lines from upstream at the same line number, so as to avoid any conflicts in the future.


implement support for commit coloring in got-read-pack for speed ok op, tracey


remove pointless assignment at the end of got_repo_pack_fds_close()


don't look for close() errors if opentemp() failed in got_repo_pack_fds_open()


move got_opentempfd out of got_repo_open. ok stsp@ thanks for all the help massaging this diff


properly swap cached struct pack array elements in got_repo_cache_pack() Avoids clobbering open files for delta base/accumulation, leaking file descriptors, and triggering errors from close(2) during got_repo_close() as we try to close the same file descriptor more than once.


ensure that all open basefd/accumfd get closed in got_repo_close() found by tracey


open temporary files needed for delta application in got_repo_open() This prepares for callers of got_repo_open() that cannot afford to open files in /tmp, such as gotwebd. In a follow-up change, we could ask such callers to pass in the required amount of open temporary files. One consequence is that got_repo_open() now requires the "cpath" pledge promise. Add the "cpath" promise to affected callers and remove it once the repository has been opened. ok tracey


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


portable: make UUID includes generic Move the detection of UUID header files to be included portably. This will have no functional effect until MacOS detection is put in place.


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@


portable: fix use of d->namlen As done elsewhere, d->namlen is not a portable field from readdir, therefore simualte this via the strlen of the directory name instead.


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