Commits


free the return of got_repo_get_path_objects{,_pack}


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@


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@


refresh our pack-index path list if the mtime of objects/pack has changed ok op@


don't leak memory allocated internally by bloom filters; ok jamsek


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


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


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