Hi, Johannes Schindelin wrote: > Particularly when calling Git from applications, such as Visual Studio, > it is important that stdin/stdout/stderr are closed properly. However, > when spawning processes on Windows, those handles must be marked as > inheritable if we want to use them, but that flag is a global flag and > may very well be used by other spawned processes which then do not know > to close those handles. > > As a workaround, introduce handling for the environment variables > GIT_REDIRECT_STD* to read/write from/to named pipes instead > (conceptually similar to Unix sockets, for you Linux folks). These do > not need to be marked as inheritable, as the process can simply open the > named pipe. No global flags. No problems. > > This feature was introduced as an experimental feature into Git for > Windows v2.11.0(2) and has been tested ever since. I feel it is > well-tested enough that it can be integrated into core Git. Can this rationale go in the commit messages? Actually I wouldn't mind if this were all a single patch, with such a rationale in the commit message. The patches' concept seems sane. I haven't looked closely at the implementation. Thanks, Jonathan