Re: t5401-update-hooks test failure
From: Shawn O. Pearce <hidden>
Date: 2016-06-15 22:48:13
Junio C Hamano [off-list ref] wrote:
"Shawn O. Pearce" [off-list ref] writes:quoted
The only way I can see this missing message happening is if the C library isn't flushing the stdio buffer before the hook process exits. Given that the hook process is a /bin/sh shell script, and its using echo to print its messages... I'm at a loss for how to fix that in Git. Unless its the recv_sideband() somehow skipping a line. But I can't see it doing that.The detection method of test is fooled by intermixed message. This is what send.err has, and you grep for '^remote:' in it. -- >8 -- warning: updating the current branch warning: Updating the currently cheremote: STDERR pre-receive ,
..
But there indeed _is_ some skipping. "Updating the currently che" is interrupted by the output from the pre-receive hook, and I do not see the remainder "cked out branch may cause confusion,\n" anywhere.
Uh. I got the problem now, thanks. What's going on is, other messages inside of builtin-receive-pack are being sent to stderr, while hook output is going over the multiplexed side-band through stdout, where its parsed and written to stderr by send-pack. What I missed in my patch was changing all of these other messages inside of receive-pack to also go over the side-band #2 if we have use_sideband enabled. Patch coming in a few minutes. -- Shawn.