git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH/RFC] recv_sideband: Band #2 always goes to stderr

From
Johannes Sixt <j.sixt@viscovery.net>
Date
Mar 10, 2009, 12:14 UTC
Message-ID
<49B659B4.5000705@viscovery.net>
In-Reply-To
<alpine.DEB.1.00.0903101236480.14295@intel-tinevez-2-302>
Johannes Schindelin schrieb:
> FWIW GitTorrent may be implemented as part of git-daemon, if Sam's ideas 
> become reality.  And then, sideband transport is _the_ means to do 
> asyncrounous communication while pushing bytes.

I do not see how recv_sideband() in its current form could be helpful here (assuming that you really are thinking of sending binary data over band #2).

Show 11 quoted lines
> On Tue, 10 Mar 2009, Johannes Sixt wrote:
>> Johannes Sixt schrieb:
>>> 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.
>> And it really is: Did you notice that stuff that recv_sideband sends over
>> the channel named 'err' (before my patch) has "remote: " prepended on
>> every line? That's certainly not an implementation that you want if you
>> send binary data over that band!
> 
> Yes, that is unfortunate, but can be fixed easily.

I don't believe this. Every treatment of "remote: " that you take away from recv_sideband() you must insert somewhere else. Perhaps easy, but certainly not as trivial as my patch.

Just a reminder: You proposed to override write() on Windows in a non-trivial way, and we are discussing the topic above because I think that is not a good idea. The reasons are:

- write() is a fundamental operation, and we should not mess with it out
of caution.
- Your proposal is not a catch-all. For example, combine-diff.c uses
puts() in dump_quoted_path(). If your goal was to not touch code outside
of compat/ then you need to override at least puts(), too.
- All code that writes ANSI escapes should use fprintf() anyway.
(Currently that is not the case, but all cases I'm aware of can be fixed
trivially.)
-- Hannes
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 8 of 26 in “winansi: support ESC [ K (erase in line)”
  1. winansi: support ESC [ K (erase in line)Johannes Schindelin, Mar 10, 2009
  2. Johannes SixtMar 10, 2009
  3. recv_sideband: Band #2 always goes to stderrJohannes Sixt, Mar 10, 2009
  4. Johannes SchindelinMar 10, 2009
  5. Johannes SixtMar 10, 2009
  6. Johannes SixtMar 10, 2009
  7. Johannes SchindelinMar 10, 2009
  8. Johannes SixtMar 10, 2009
  9. Johannes SchindelinMar 10, 2009
  10. Johannes SixtMar 10, 2009
  11. Shawn O. PearceMar 10, 2009
  12. Johannes SchindelinMar 10, 2009
  13. Junio C HamanoMar 10, 2009
  14. Shawn O. PearceMar 10, 2009
  15. Johannes SixtMar 10, 2009
  16. Johannes SchindelinMar 10, 2009
  17. Johannes SixtMar 10, 2009
  18. Nicolas PitreMar 10, 2009
  19. Jay SoffianMar 10, 2009
  20. Nicolas PitreMar 10, 2009
  21. 1/2 recv_sideband: Bands #2 and #3 always go to stderrJohannes Sixt, Mar 10, 2009
  22. 2/2 winansi: support ESC [ K (erase in line)Johannes Sixt, Mar 10, 2009
  23. Johannes SchindelinMar 11, 2009
  24. Johannes SchindelinMar 10, 2009
  25. Peter HarrisMar 10, 2009
  26. Johannes SchindelinMar 10, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.