forked from git/git
-
Notifications
You must be signed in to change notification settings - Fork 143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support git:// with *old* MinGW #137
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
35 tasks
/submit |
Submitted as [email protected] |
Since commit 0c499ea (send-pack: demultiplex a sideband stream with status data, 2010-02-05) the built-in send-pack uses the side-band-64k capability if advertised by the server. Unfortunately this breaks pushing over the dump git protocol if used over a network connection when using MinGW (but *not* when using mingw-w64). The detailed reasons for this, are courtesy of Jeff Preshing, quoted from https://groups.google.com/d/msg/msysgit/at8D7J-h7mw/eaLujILGUWoJ: MinGW wraps Windows sockets in CRT file descriptors in order to mimic the functionality of POSIX sockets. This causes msvcrt.dll to treat sockets as Installable File System (IFS) handles, calling ReadFile, WriteFile, DuplicateHandle and CloseHandle on them. This approach works well in simple cases on recent versions of Windows, but does not support all usage patterns. In particular, using this approach, any attempt to read & write concurrently on the same socket (from one or more processes) will deadlock in a scenario where the read waits for a response from the server which is only invoked after the write. This is what send_pack currently attempts to do in the use_sideband codepath. The new config option "sendpack.sideband" allows to override the side-band-64k capability of the server, and thus makes the plain git:// protocol work. As this only affects builds against MinGW, the default is still to use side band. [jes: split out the documentation into Documentation/config/, touched up the commit message.] Signed-off-by: Thomas Braun <[email protected]> Signed-off-by: Johannes Schindelin <[email protected]>
Dropping this patch, as per the consensus on the mailing list. |
1 task
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The MinGW project (which can now be considered "old", as mingw-w64 is the standard thing to use nowadays, since it also supports 64-bit builds) had some problems with our sideband feature, and in Git for Windows <2.x, we introduced a config setting to still allow using the git:// protocol by forcing off the sideband channel.
Let's contribute this patch to upstream Git, at long last.
Changes since v1:
git://
protocol.Cc: Eric Sunshine [email protected]