Commit Briefs

Thomas Adam

regress: make cmdline tests sh compatible

Ensure shell scripts can run under more POSIX-restricted shells. OK op@


Christian Weisgerber

regress: replace unportable ln -h option with rm && ln

ok stsp


Christian Weisgerber

guard MIN() macro against redefinition


Stefan Sperling

gotd requires a config file; don't fail silently when gotd.conf cannot be read

Fixes an issue encountered by mlarkin@ where the auth process was working with an empty list of repositories and kept saying it could not find a repository which was obviously listed in gotd.conf. Now we can see errors from fopen() in the logs instead. Old code was copied from gotwebd where the config file is optional.


Omar Polo

add got_repo_get_object_format()

and use it to avoid hardcoding the digest type in a few places. ok stsp@


Christian Weisgerber

add xfail test for "got diff" when a commit changed a file to a directory

git diff: diff --git a/alpha b/alpha deleted file mode 100644 index 4a58007..0000000 --- a/alpha +++ /dev/null @@ -1 +0,0 @@ -alpha diff --git a/alpha/beta b/alpha/beta new file mode 100644 index 0000000..65b2df8 --- /dev/null +++ b/alpha/beta @@ -0,0 +1 @@ +beta got diff: diff d973bf45ce9b2b437b5d6352368e8406f9e256e2 34413d01304800f99058a1a42769e92afc534199 commit - d973bf45ce9b2b437b5d6352368e8406f9e256e2 commit + 34413d01304800f99058a1a42769e92afc534199


Omar Polo

add missed `size' initialization for use with getline(3)

ok tb@



Stefan Sperling

make gotd repo_read store want/have commit IDs in ID sets rather than arrays

Currently only used to detect and avoid storing duplicate IDs sent in want and have lines by the client. If in the future we ever wanted to check which IDs the client has already sent us we could now do O(1) hash table lookups rather than iterating arrays. ok op@



Omar Polo

histedit_parse_list: avoid needless free(line)

getline(3) allows to safely re-use the storage. While here rename `size' to `linesize', `len' to `linelen', and properly initialize `linesize' to zero; suggested by tb@ ok tb@


Stefan Sperling

in got.1, clarify what users are expected to do during 'histedit -e'

Gap in the documentation pointed out by James Cook.


Stefan Sperling

fall back to vi(1) instead of ed(1) if neither EDITOR nor VISUAL are set

ed users are reading files with their minds rather then their eyes, and might therefore be missing important visual clues we write into files before the user gets to edit them. Use of vi(1) ensures that such clues will not be missed.


Omar Polo

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@


Omar Polo

remove now unused sha1 handling from inflate and deflate

both were changed to use the new got_hash APIs.


Christian Weisgerber

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

ok stsp


Christian Weisgerber

regress: git_rm will cd into the test repo by itself



Stefan Sperling

fix bad wording used in previous commit



Stefan Sperling

properly initialize csum struct in write_packed_object()

fixes send.sh test fallout on arm64 and should also fix i386 ok op@


Christian Weisgerber

format message digest as hex string directly without snprintf()

ok op


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@


Omar Polo

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@


Omar Polo

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

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