Re: t5401-update-hooks test failure
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Feb 10, 2010, 01:29 UTC
- Message-ID
- <20100210012935.GD28936@spearce.org>
- In-Reply-To
- <7vpr4eyqok.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> wrote:
Show 19 quoted lines
> "Shawn O. Pearce" <spearce@spearce.org> writes: > > > 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.