Junio C Hamano <gitster@xxxxxxxxx> wrote: > Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes: ... >> For example, then we could just do >> >> status = p->fn(...); >> if (status) >> return status; >> /* Somebody closed stdout? */ >> if (fstat(fileno(stdout), &st)) >> return 0; >> /* Ignore write errors for pipes and sockets.. */ >> if (S_ISFIFO(st.st_mode) || S_ISSOCK(st.st_mode)) >> return 0; >> >> which makes it easy to explain what's going on, and avoids having any deep >> indentation at all. > > I took the liberty of munging your two patches to follow your > comments above That has the disadvantage of ignoring *all* pipe and socket write errors. IMHO, git would be better served if it didn't do that, since writing to those can fail with EIO and even a new one: EACCES (though this latter is only for sockets). Also possible, according to POSIX: ENOBUFS. Of course, one can probably argue that those are all unlikely. They may be even less likely than an actual EPIPE, but the point is that people and tools using git plumbing should be able to rely on it to report such write failures, no matter how unusual they are. - 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