From: Johannes Sixt Date: Tue, 10 Mar 2009 11:11:24 GMT Subject: Re: [PATCH/RFC] recv_sideband: Band #2 always goes to stderr Message-ID: <49B64ADC.2090406@viscovery.net> In-Reply-To: Johannes Schindelin schrieb: > On Tue, 10 Mar 2009, Johannes Sixt wrote: >> This removes the last parameter of recv_sideband, by which the callers >> told which channel band #2 data should be written to. Since both callers >> of the function passed 2 for the parameter, we hereby remove the >> parameter and send band #2 to stderr explicitly using fprintf. > > To be honest, I considered this myself. > > But I think it is wrong. Just because the current callers happen to > output to stderr does not mean that we would not like sidebands that > exchange binary data for other uses in the future. > > I am thinking GitTorrent here. Clearly, we are looking at git here, not GitTorrent. "Because we could" is IMNSHO not a good justification keep code unnecessarily complicated. > And clearly, sideband support was written with future uses like that in > mind, as it goes out of its way to transmit packets instead of strings. All data producers and data consumers *in git* use band #2 to transport error messages and progress report. GitTorrent cannot not talk to upload-pack or upload-archive and expect to get arbitrary binary data over band #2. For use-cases that you have in mind in GitTorrent, the *protocol* may be a good choice, but the current implementation is definitely a special case. -- Hannes