Add sideband support to PackFetchConnection
commit66d0cf5616a4897b9983e43558335604a6deb726
authorShawn O. Pearce <spearce@spearce.org>
Sun, 20 Apr 2008 09:54:25 +0000 (20 05:54 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Sun, 11 May 2008 05:16:35 +0000 (11 01:16 -0400)
tree2b176bcad14bffee6e1a55fd95a883e79d2f63e9
parentecdd7b599f3877775401bebde4c270f68433c595
Add sideband support to PackFetchConnection

When we fetch from a remote system over the anonymous Git protocol
we don't have progress messages come back on stderr like we would
on an SSH connection.  Instead we need to have them multiplexed on
the same stream as the pack data itself, and then split the data
on the client side to the proper locations.

Unlike C Git (and FetchClient before us) we avoid using threads
to do the de-multiplexing and instead perform this as part of the
InputStream implementation we pass off to IndexPack.  This keeps
the our fetch code simple and avoids any issues related to thread
synchronization.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
org.spearce.jgit/src/org/spearce/jgit/lib/TextProgressMonitor.java
org.spearce.jgit/src/org/spearce/jgit/transport/PackFetchConnection.java
org.spearce.jgit/src/org/spearce/jgit/transport/PacketLineIn.java
org.spearce.jgit/src/org/spearce/jgit/transport/SideBandInputStream.java [new file with mode: 0644]