Am 19.05.2014 21:33, schrieb Jonathan Nieder:
Hi,
Thomas Braun wrote:
pushing over the dump git protocol with a windows git client.
I've never heard of the dump git protocol. Do you mean the git
protocol that's used with git:// URLs?
You are right I mean the protocol involving git:// URLs. But
unfortunately I got it wrong as according to [1] the git:// is one of
the so-called smart protocols. That was also the source where I read
that there are smart and dump protocols.
[1]: http://git-scm.com/book/en/Git-Internals-Transfer-Protocols
[...]
Alternative approaches considered but deemed too invasive:
- Rewrite read/write wrappers in mingw.c in order to distinguish between
a file descriptor which has a socket behind and a file descriptor
which has a file behind.
I assume here "too invasive" means "too much engineering effort"?
It sounds like a clean fix, not too invasive at all. But I can
understand wanting a stopgap in the meantime.
No actually I meant too invasive in the sense of "requiring large
rewrites which only benefit git on windows and hurt all others".
The two fixes I can think of either involve:
- In a read *and* write wrapper the need to check if the fd is a socket,
if yes use send/recv if no use read/write. According to Erik's comments
this should be possible. But I would deem the expected performance
penalty quite large as that will be done in every call.
- Rewriting read/write to accept windows handles instead of file
descriptors. Only a theoretical option IMHO.
For me the goal is also to minimise the diff between git and msysgit/git.
- Turning the capability side-band-64k off completely. This would remove a useful
feature for users of non-affected transport protocols.
Would it make sense to turn off sideband unconditionally on Windows
when using the relevant protocols?
Yes, if this would be also acceptable for git.git.
I can check at the call site of send_pack in transport.c what protocol
is in use, and then pass a new parameter use_sideband to it.
Or maybe "adapt" server_capabilities in connect.c to not include
side-band-64k if using git:// ?
--
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