fix "got fetch" hang against out-of-date remote repositories
commitc12ab9ad7f32b9eb712734e776de2f7b0370e643
authorStefan Sperling <stsp@stsp.name>
Mon, 20 Feb 2023 21:14:12 +0000 (20 21:14 +0000)
committerThomas Adam <thomas@xteddy.org>
Tue, 21 Feb 2023 12:31:55 +0000 (21 12:31 +0000)
tree98c04daed2e05d20547a51b77d72d4af12e3805f
parent47c7ee21b5f269eed3127db9d3ac7c490d1ecf0a
fix "got fetch" hang against out-of-date remote repositories

Do not assume that remote repositories will always have our objects.
In Git protocol terms: Do not wait for an ACK from the server before
sending the final "done" message. Otherwise servers might be waiting
for more have-lines from us in order to find a common ancestor, which
will never be sent by us.

Problem reported by James Cook who also provided an initial test case

ok op@
libexec/got-fetch-pack/got-fetch-pack.c
regress/cmdline/fetch.sh