On Wed, Dec 28, 2011 at 11:55:24AM +0200, Dov Grobgeld wrote: > Git supports multiple transport protocols. Among them are git, ssh, > and https. (You can also use direct file system access, but it is > questionable whether to call that a protocol). Each of the protocols > have their advantages and drawbacks. The git protocol is only used for > reading, and not for writing, but is supposed to be very fast. The > common firewall filtering of the git protocol port 9418 is another > problem. ssh is the prefered protocol for writing to a remote > protocol. But if ssh is filtered, then http/https may be used, which > is very slow for large repositories, but it has the advantage that it > is the least blocked protocol. Slow for large repositories? Are you thinking of the dumb HTTP transport? That one shouldn't be used for doing any serious work. The Smart HTTP transport is just the git smart protocol (the same one git:// and ssh:// URLs speak) wrapped inside HTTP communication. The negotiation phase is a more expensive than with either git or ssh, as HTTP is stateless and you need to remind the remote what you want and what you've already agreed on, but the actual transfer of data is done the same way than with the others so overall it shouldn't be that noticeable. Now, to the OP's concerns: yes, the ssh transport does generate ssh transport, as that's the whole point. You authenticate against the remote machine's ssh daemon and run git-upload-pack or git-receive-pack as needed (for fetching or pushing). If corporate policy doesn't allow ssh you should either fix the policy or use the smart HTTP protocol, though this involves messing with passwords and their associated problems. I'm not saying ssh keys don't have their complications, but I much prefer them. We can't help you diagnose why your clone is stalling without more information. It could be that the connection between the computers is flaky, git trying to take too much memory on the remote or local machines or any number of things. See if setting GIT_TRACE=1 in the environment helps to see what's going on. cmn
Attachment:
signature.asc
Description: Digital signature