Johannes Schindelin schrieb:
On Tue, 10 Mar 2009, Johannes Sixt wrote:
quoted
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