Commit Briefs

Stefan Sperling

move code for reading Git's config file into new file read_gitconfig_privsep.c

The end goal here is to remove the dependency of repository.c on privsep.c during compilation.


Mark Jamsek

add gotadmin init -b <branch> to specify repo head ref

Similar to `git init -b`. Includes a change to `got import` behaviour such that "main" is no longer hardcoded by default; instead, we import to the branch resolved via the repository's HEAD reference unless `got import -b` is used, and only if HEAD cannot be resolved to a branch do we fallback to "main". includes fix plus ok from stsp@



Omar Polo

plug mem leak in got_repo_pack_fds_open

pack_fds_tmp is not always free'd. However, while here, simplify it to not use a temporary array. ok stsp@


Omar Polo

plug a leak in match_loose_object

in the loop of match_loose_object we allocate a string per directory entry that in some case it was free(3)'d before `continue' or `goto', but not always. Instead, use a more common idiom. ok stsp@





Omar Polo

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@



Stefan Sperling

comment tweak


Stefan Sperling

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.


Florian Obser

Make sure got_repo_pack_fds_close() frees a malloc'ed pointer.

Found by llvm's scan-build (bad free). OK stsp


Florian Obser

Don't chug along if repo format version is unsupported.

Found by llvm's scan-build (dead store). OK stsp


Stefan Sperling

implement support for commit coloring in got-read-pack for speed

ok op, tracey




Tracey Emery

move got_opentempfd out of got_repo_open. ok stsp@

thanks for all the help massaging this diff


Stefan Sperling

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.


Stefan Sperling

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

found by tracey


Stefan Sperling

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


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@


Christian Weisgerber

const-ify string table


Omar Polo

don't `goto done' if calloc fails

otherwise we call got_repo_close with repo being NULL and segfault there. ok stsp


Stefan Sperling

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@