Here is a series of patches that removes a number fork/exec pairs. They are replaced by delegating to start_command/finish_command/run_command. You can regard this as the beginning of the MinGW port integration. There still remain a few forks, which fall into these categories: - They are in tools or code that are not (yet) ported to MinGW.[*] - The fork()s are not followed by exec(). These need a different implementation. I am thinking of a start_coroutine()/finish_coroutine() API that is implemented with threads in MinGW. (Suggestions of a better as well as implementations are welcome.) - The upload-pack case calls for an entirely different solution. [*] Just this weekend Mike Pape ported git-daemon, but I didn't find the time to have it integrated in this series - if that were possible at all. Patch 2 depends on Patch 1; otherwise, there are no dependencies. The series goes on top of next (it touches str_buf stuff in connect.c). builtin-archive.c | 8 +-- builtin-fetch-pack.c | 63 ++++++++----------------- cache.h | 4 +- connect.c | 126 ++++++++++++++++++++++++-------------------------- convert.c | 36 ++++---------- diff.c | 38 +-------------- peek-remote.c | 8 +-- send-pack.c | 8 +-- transport.c | 9 +--- 9 files changed, 106 insertions(+), 194 deletions(-) -- Hannes - 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