Explicitly capture the stderr from a failed SSH fetch or push
If the remote command name is not found on the remote system we are
likely to get a shell error sent to the channel's stderr stream,
and yet the channel is connected. So we don't see the problem
until we try to read the advertised refs, which is somewhat late.
If we get EOF before the first advertised ref it is a very good
indication that the remote side did not start the process we wanted
it to. Tossing a specialized exception allows the SSH transport
to offer up the contents of the stderr channel (if any) as possible
indication of why the repository does not exist.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>