Commit Briefs
in got.1 EXAMPLES, mention how files can be moved or renamed
based on an initial patch by Matthias Schmidt
show hint about update -b if the user attempts to rebase a branch onto itself
Specifically, when 'gut send' suggests 'fetch and rebase required', new users might try to use 'got fetch' directly followed by 'got rebase' without first updating the work tree to newly fetched commits. Got would then say "main is already based on main" without any hint for a way out. Hopefully, pointing users at the update -b command will make them search the manual for details.
abort if we see a sha2 hash.
it's incomplete and will lead to an overwrite. quiets a potential compiler warning.
CHANGES for 0.99 (tags/0.99)
fix an issue where 'git fetch' would error or hang against gotd
If Git has more than 16 have-lines to send it will send a flush-pkt followed by more have-lines. Due to a misunderstanding on my part, gotd didn't like this because it assumed that the flush-pkt terminates the list. Add a test coverage in a new file which we can use to test Git interop issues. Fixes a problem seen by Thomas Adam upon git fetch from got.g.o.
prevent spurious failure of gotd test_clone_basic_access_denied
Filter output for a single error message to avoid spurious test failures which result from output appearing in an unexpected order: test_clone_basic_access_denied --- /tmp/gotd-test-clone_basic_access_denied-IkTXPlX5FH/stderr.expected ... +++ /tmp/gotd-test-clone_basic_access_denied-IkTXPlX5FH/stderr ... @@ -1,2 +1,2 @@ -got-fetch-pack: test-repo: Permission denied got: fetch failed +got-fetch-pack: test-repo: Permission denied test failed; leaving test data in /tmp/gotd-test-clone_basic_access_denied-IkTXPlX5FH
attempt to fix lingering gotd processes from reading clients
When reading clients close the connection early do not ignore this condition in session_read. The code removed here intended to handle the case of a writing client uploading a pack file, and thus does not belong into session_read.c. I overlooked this when splitting session.c into two files. This might fix an issue observed on got.g.o where the anonymous user was no longer connected and left lingering session_read and repo_read processes hanging around until the request timeout was reached.
add default case to the switch statement in choose_patch()
Just in case the code futher up gets tweaked again such that the validity check using strchr() will be skipped in some edge case. Lucas agrees
make gotd notifications work when 'git push' is used instead of 'got send'
Git clients disconnect earlier, which resulted in session_write exiting before notifications were sent. Do not treat early EOF as a fatal error if we are sending notifications. Add regression test coverage for 'git push'. Problem found by Thomas Adam.
got: refactor choose_patch
Unify the handling of a response file and interactive use, handle EOF, fix a memleak and make it easier to extend in the future. In particular, interactive mode now doesn't loop forever on EOF. Patch by Lucas Gabriel Vuotto. Joint work with op.
in gotd.conf(5) use .Sq instead of .Dv when referring to JSON field names
Reads better because .Dv has no discernable effect in terminal or HTML. discussed with op@
move GOTD_ACCESS_DENIED more bits away from GOTD_ACCESS_GRANTED
A similar change was made to doas(1) recently in response to rowhammer.
document common JSON notification object properties separately
Document properties which are always set just once and upfront, and list the object types and type-specific properties afterwards.