Commit Briefs

Thomas Adam

portable: regress: improve date wrapper

When looking for a suitable date wrapper, don't use the platform name, and rather use date(1)'s own parsing to choose BSD date, or gdate (GNU). Additionally, only declare the date() wrapper once. From Christian "naddy" Weisgerber


Thomas Adam

regress/commit.sh: tweak editor.sh for test_commit_prepared_logmsg

no need for sed (which doesn't change anything anyway), a no-op editor script is enough; the test ensures that the prepared log message is used. ok naddy@ stsp@


Thomas Adam

regress: override locale settings

ok stsp


Thomas Adam

don't pass -d to yacc

Patch from Josiah Frentsos, thanks!



Thomas Adam

gotd: Fix more double process names

Patch by Josiah Frentsos, thanks!


Thomas Adam

template: sync usage() with man page

`-o' was missing. Patch from Josiah Frentsos, thank you!


Thomas Adam

portable: set next version


Thomas Adam

portable: CI/README: update for coreutils

Mention that GNU coreutils is no longer required on *BSDs to run the test suite.


Thomas Adam

portable: regress: drop GNU date on *BSDs

Check if date(1) supports -r and fallback to gdate if that fails, via a shell-wrapper. From Christian "naddy" Weisgerber.


Thomas Adam

regress: make cmdline tests sh compatible

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


Thomas Adam

portable: remove ln(1) wrapper

GNU Coreutils is wrapped for some commands which don't offer a portable means to run those commands on non-BSD systems. ln(1) was being used with a non-portable option (-h) which has now been replaced upstream. Therefore, we can remove this wrapper. Patch from Christian "naddy" Weisgerber.


Thomas Adam

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

ok stsp


Thomas Adam

guard MIN() macro against redefinition


Thomas Adam

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.


Thomas Adam

add got_repo_get_object_format()

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


Thomas Adam

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


Thomas Adam

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

ok tb@



Thomas Adam

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@



Thomas Adam

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@


Thomas Adam

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

Gap in the documentation pointed out by James Cook.


Thomas Adam

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.


Thomas Adam

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@