Nicolas Pitre <nico@xxxxxxx> wrote: > There may indeed be line fragments sent over the sideband channel, as > well as the opposite which is multiple lines sent at once in a single > packet. If you look at sideband.c you'll find about all those cases. Thanks, that's what I thought... > In general, what you have to do is: > > - for each packet: > - split into multiple chunks on line breaks ('\r' or '\n') > - for each chunk: > - if last chunk didn't end with a line break, or if current > chunk is empty or only contains a line break, then skip printing > the "remote:" prefix. Otherwise print it. > - print the current chunk up to any line break > - if current chunk contains a line break and other characters then > print a sequence to clear the remaining of the screen line > - print the line break if any Hmm. I should note that C Git still screws this up sometimes. I've seen 1.6.1 git fetch mess up the output from repo.or.cz's sideband. I'm sure Pasky isn't running JGit's daemon, its too damn fast. :-) I don't have a spew of it handy, but late last week I saw it screw up while doing a clone off repo.or.cz. Robin, maybe we should apply this patch? Its along the lines Nico is describing above, but because our progress code doesn't do direct display its a little less complex, we don't have to worry about clearing the current line. But I think I'm doing the chunk splitting and filtering he's talking about. -- Shawn. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html