proc-receive hook writes update and post-receive hook messages directly to the connection
Gitaly's proc-receive implementation is currently outputting messages from update
and post-receive
hooks directly into the connection used by receive-pack
, and isn't using side-band packets. This leads to failures as it doesn't conform to the protocol.
Without proc-receive
stdout: "00c20d30083b7f626363c53ac374566222d477602195 refs/heads/branch-1\x00report-status report-status-v2 delete-refs side-band-64k quiet atomic ofs-delta push-options object-format=sha1 agent=git/2.45.1\n0041c1b8037c55c7b25e5f1d620dd6a77dfc04f93117 refs/heads/branch-2\n0041edccd1e7949fc44b5bc30eb506aead976f0c4cf0 refs/heads/branch-3\n003db2a0307e65d86e4f9cdc4c99d7ee4804811627be refs/heads/main\n0000"
stdout: "0032\x01000eunpack ok\n001bok refs/heads/branch-3\n0000"
stdout: "0085\x02\nTo create a merge request for branch-3, visit:\n http://localhost:3000/root/test-project-1/-/merge_requests/new?merge_request%50021\x02Bsource_branch%5D=branch-3\n\n"
stdout: "0000"
With proc-receive
:
stdout: "00c20d30083b7f626363c53ac374566222d477602195 refs/heads/branch-1\x00report-status report-status-v2 delete-refs side-band-64k quiet atomic ofs-delta push-options object-format=sha1 agent=git/2.45.1\n0041c1b8037c55c7b25e5f1d620dd6a77dfc04f93117 refs/heads/branch-2\n0041edd6866cb313aa8e3557d6247823fd5958a665ef refs/heads/branch-3\n003db2a0307e65d86e4f9cdc4c99d7ee4804811627be refs/heads/main\n"
stdout: "0000"
stdout: "\n"
stdout: "To create a merge request for branch-3, visit:\n http://localhost:3000/root/test-project-1/-/merge_requests/new?merge_request%5Bsource_branch%5D=branch-3"
stdout: "\n\n"
stdout: "0032\x01000eunpack ok\n001bok refs/heads/branch-3\n0000"
stdout: "0000"
Edited by Sami Hiltunen