libgit2/libgit2 — pull request #1410 by phkelley (2013-03-12 19:24:57+00:00)
Title: Advertise and support side-band-64k when calling receive-pack

We had a customer try pushing with libgit2 to Gitblit, a JGit-based Git server. Even though we send up `report-status` in the capabilities line, it does not send back a push report. (The push does succeed and the refs are updated on the remote side.) This leads to `git_push_finish` failing with the error message `Early EOF`.

It looks like this particular Git server will not send back a push report unless we also advertise support for `side-band-64k`. If we do advertise support for `side-band-64k`, then we get back a push report that is not sidebanded at all. This is also weird. If you advertise support for `side-band-64k` to a real Git server on receive-pack, then you get the push report in sideband channel 1 (data).

This pull request adds support for `side-band-64k` to the parser for the receive-pack response (the push report), and we start advertising it. So now we support (as does core git) the server sending us the push report sidebanded (or not). That means you can push to a real Git server, or to this Gitblit server, without any trouble.