Commit Briefs
fix gotd sometimes reading reused deltas from wrong pack file
The reuse-pack is pinned but may change its cache slot while objects are being deltified. Refresh the pointer to the pinned reuse-pack before writing out the pack file, ensuring that reused deltas will in fact be read from the reuse-pack and not some other pack. Otherwise gotd may send a broken pack file, or hit an ERR_RANGE condition if the pack file which now occupies the pinned-pack's old cache slot is shorter. Which can trigger attempts to read beyond end-of-file which show up in the logs like this: gotd[37311]: repo_read /var/git/got.git: sending packfile: value out of range gotd[43877]: uid 1002: value out of range gotd[43877]: uid 1002: disconnecting
add xfail test for histedit folding of delete followed by add
If a file is deleted, then in modified form added again, folding should restore the file with its new contents. ok stsp
portable: regress: add back GOT_TEST_PACK
The definition for GOT_TEST_PACK went walkies during a previous merge conflict. Add this back.
portable: regress: remove sed wrapper
Now that the use of sed(1) in tests has been replaced with ed(1), the sed wrapper can be retired. There are existing tests which use sed, but they're modifying a stream, rather than using -i, so there's no portability concerns.
regress: replace "sed -i" with ed(1) for portable in-place editing
"sed -i" is fundamentally unportable. GNU and OpenBSD sed(1) treat the extension for the backup file as an optional argument and use "sed -i" for no backup file. FreeBSD sed(1) treats the extension as an obligatory argument and uses "sed -i ''" for no backup file. There is no single syntax that works for both. ok stsp op
portable: regress: drop setting LC_TIME
common.sh sets LC_ALL=C which makes this change unnecessary now. Patch from Christian "naddy" Weisgerber.
portable: regress: minor cosmetic cleanup
Drop the forcing of "command" when calling sed(1).
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
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@
don't pass -d to yacc
Patch from Josiah Frentsos, thanks!
gotd: Fix more double process names
Patch by Josiah Frentsos, thanks!
template: sync usage() with man page
`-o' was missing. Patch from Josiah Frentsos, thank you!
portable: CI/README: update for coreutils
Mention that GNU coreutils is no longer required on *BSDs to run the test suite.
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.
regress: make cmdline tests sh compatible
Ensure shell scripts can run under more POSIX-restricted shells. OK op@
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.
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.
add got_repo_get_object_format()
and use it to avoid hardcoding the digest type in a few places. ok stsp@
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