Commits


fix GOT_IMSG_COMMIT_TRAVERSAL_REQUEST The sending and receiving side are sending the data differently. It works now by chance since a struct got_object_id is "just" a SHA1_DIGEST_LENGTH sized buffer, but will break in the future. Furthermore, the structure of the data as described in got_lib_privsep.h is not respected, as the path_len field is not transmitted. Change it to send/receive a whole struct got_object_id, the path without the NUL and the proper length. (The path is also actually mandatory, so assert it too.) improvements + ok stsp@


remove now unused sha1 handling from inflate and deflate both were changed to use the new got_hash APIs.


add xfail test for "got update" replacing a file with a directory ok stsp


regress: git_rm will cd into the test repo by itself


merge TODO wording tweak: 'got rebase' says "forwarding", not "fast-forwarding"


fix bad wording used in previous commit


add a TODO item for 'got merge' based on IRC discussion with James Cook


properly initialize csum struct in write_packed_object() fixes send.sh test fallout on arm64 and should also fix i386 ok op@


format message digest as hex string directly without snprintf() ok op


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@


provide functions to parse/serialize different hashes it abstracts over the hash type and ensures that object ids are zero'ed before their sha1 digest is written. Needed by the incoming sha256 support. ok stsp@


rename lib/sha1.c to lib/hash.c It will soon grow functions to deal with sha256 too. stsp@ agrees.


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>


gotwebd: add missing colon after 'Message' in diff view Patch by Josiah Frentsos, thanks!


bump version number


CHANGES for 0.84


fix tog diff between arbitrary commits Don't assume commit info is always written. This is only true when diffing a commit against (one of) its direct parent(s). Otherwise we perform an invalid read on a tmp got_diff_line array and end up passing bogus offsets to fseeko(). Bug found and fixed by stsp with a minor tweak by me. ok jamsek for stsp's initial diff ok stsp@


gotwebd: gc unused opendir(). ok stsp@


gitconfig.c: look for comments after trimming the start of the line This fixes the (harmless) errors raised by gitconfig.c on indented comment lines and adds a test case for it. Reported by James Cook, thanks! ok stsp@


log gitconfig.c parser errors to stderr, not stdout. ok stsp@


gotwebd.conf: sync defaults The first example is meant to show the default values for all the options. Sync with reality.


fix 'got merge' so it parses gitconfig for author cmd_merge is the only subcommand that may create commits that doesn't parse the git config files, thusly failing for users without GOT_AUTHOR defined. Problem reported by James Cook who also provided an initial test case, thanks! ok jamsek


fix "got fetch" hang against out-of-date remote repositories Do not assume that remote repositories will always have our objects. In Git protocol terms: Do not wait for an ACK from the server before sending the final "done" message. Otherwise servers might be waiting for more have-lines from us in order to find a common ancestor, which will never be sent by us. Problem reported by James Cook who also provided an initial test case ok op@


use newly publicised diff_chunk_type() diff API To skip chunks without newly added lines. ok stsp@


sync files from diff.git e78a8d73c23ee314fdbdf110d5c55866c9ef9680 Moves diff_chunk_type into the public diff API.