Commit Briefs

1bda45afb1 Omar Polo

never write accum_buf on error in got_pack_dump_delta_chain_to_file()

and also avoid to override `err' if fwrite fails. ok millert, stsp


e9a3af3077 Omar Polo

plug memory leak in got_pack_dump_delta_chain_to_file()

found by smatch. ok stsp@


6df9defae8 Omar Polo

change got_packidx_match_id_str_prefix not to reset the stailq

Since it appends to the given stailq, the ownership is moved and so don't initialize/reset it at the start and neither on error. The caller has to take care of the contents. (kind of) follow up to 2234939fb4. Based upon an original diff from jamsek; ok jamsek


8546792474 Mark Jamsek

whitespace



6048158fc3 Stefan Sperling

do not forget to flush after writing a cached fulltext to a temporary file

Fixes the following error during gotadmin pack -a: gotadmin: raw object has unexpected size



2d6dd3ed2c Stefan Sperling

style tweaks from jamsek


1aaa156217 Stefan Sperling

cache fulltext data in delta cache to improve speed with long delta chains

ok jamsek


2f43cd698e Stefan Sperling

remove dependency of gitwrapper, gotctl, and gotsh on object_parse.c

Move some functions from object_parse.c into hash.c. These functions either require hash.c code anyway or contain object ID implementation internals. Add a new file object_qid.c, for got_object_id_queue and got_object_qid. This new file must be linked to virtually every program.


20a2922ac9 Omar Polo

unfold line


ae25a666dd Omar Polo

add some helper functions to compute hashes

This adds a set of functions to abstract over SHA1Init, SHA1Update, SHA1Final, their respective SHA256 variants and how to compare digests. Replace all the SHA1*() usage with the new APIs. It's a preparatory step for sha256 handling. ok stsp@


53bf0b5419 Omar Polo

rename lib/sha1.c to lib/hash.c

It will soon grow functions to deal with sha256 too. stsp@ agrees.


5822e79e39 Omar Polo

include sha2.h too where sha1.h is included

In preparation for wide sha256 support; stsp@ agrees. Change done mechanically with find . -iname \*.[cy] -exec sam {} + X ,x/<sha1\.h>/i/\n#include <sha2.h>


f990756a39 Omar Polo

use SHA1_DIGEST_LENGTH instead of sizeof(id)

ok stsp


24b7de1c04 Stefan Sperling

avoid copying reused deltas to delta cache file; copy from pack file instead

ok op@


e62fc5205c Stefan Sperling

add missing free() of delta buffers in several error paths


e5792992e5 Omar Polo

change add_delta to take an off_t instead of size_t.

add_delta already calls got_delta_open casting the size_t to off_t, and all the add_delta callers pass an off_t anyway; fixes an implicit off_t truncation. ok stsp@


ad4cc36168 Omar Polo

convert got_pack' filesize to off_t; ok stsp@


1c28a36116 Omar Polo

check size before calling mmap(2)

It's only a preparatory step, as checking whether a size_t is less than SIZE_MAX is moot. In a follow-up commit, however, the `filesize' field of the struct got_pack will become off_t and these checks will kick in. This also makes consistent how we guard mmap(2) against empty files. ok and improvements stsp@


82031ac84c Omar Polo

add missing `goto done;' on error path; ok stsp@


e082ed6708 Christian Weisgerber

fix off_t type mismatch

off_t is a signed type and depending on the platform, it can be "long" or "long long", so cast to long long for printf().


24d916d21f Omar Polo

change got_pack_parse_offset_delta tslen argument to size_t

The tslen argument is always in the (1..9) range so `int' is technically fine (even int8_t would be!) but all the callers are passing a size_t, so change the type accordingly. ok stsp@


74ef8aae7e Stefan Sperling

close parent's end of imsg pipe before waiting for a child process to exit

Prevents a dead-lock in 'tog log' where tog wants to exit (e.g. because the user pressed Ctrl-C) while a got-read-pack child process wants to send more commits. Closing the parent's pipe descriptor makes writes to the pipe fail in the child process. The child then unwinds via an ERR_EOF error and exits, instead of forever polling its end of the pipe in order to write more data. ok jamsek