Commits


regress: use seq instead of jot This is just for -portable since jot is not always available. ok stsp@


adjust expected output to make 2 failing gotd regression tests pass The repo_write process still announces HEAD twice, once with its symref target and once with the resolved symref object hash. I cannot recall if this is deliberate but let's accept it for now to avoid test failures being flagged due to this issue, which is mostly cosmetic.


fix expected output; with previous change fetch -l no longer lists HEAD twice


make gotd avoid a "failed to push some refs" error from no-op 'git push' gotsh was sending errors such as "unexpected end of file" and "unexpected flush-pkt" to the client when the client disconnected immediately after receiving reference announcements from the server. As a result, 'git push' with both sides up-to-date would show an obscure error message: = [up to date] main -> main error: failed to push some refs to 'ssh://example.com/git/repo.git Now we see: = [up to date] main -> main Everything up-to-date ok jamsek


fix spurious empty packfile error from gotd when rewinding a branch ok op@


extend test_delete_branch - try to delete using git - try to delete multiple branches in one go - verify the ref-list reported by the server before and after the deletion suggested / ok stsp


gotd: implement the delete-refs capability Allow clients to run "got send -d" against gotd. Clients will send a zero-id as new id for a reference and, in the special but more common case of just deleting and not updating, no pack file will be sent. ok and tweaks by stsp@


gotd: fix "bad packfile with zero objects" error while creating branches Clients will send an empty pack file if they are only creating new references and have no objects to upload. Make gotd handle this and add a regression test which triggers the bug. Problem found by op@. The new regression test caught an unrelated issue where the client connection was left lingering after references had been updated, which made 'got send' followed by 'got clone -l' fail with the connection limit configured for the test suite (just one connection is allowed at a time). Fix this as well. ok op@


fix an issue where gotd fails to accept multiple have-lines from clients ok op, jamsek


fix an issue where multiple ref-updates are rejected by gotd ok op@


tweak a gotd regress test to cover incremental 'got fetch' Previously the gotd tests were only running fresh clones.


add a test suite for gotd(8); check basic clone and send functionality