Re: [PATCH 2/2] Check for IO errors after running a command
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 25, 2007, 09:44 UTC
- Message-ID
- <7vy7i8xtap.fsf@assigned-by-dhcp.pobox.com>
- In-Reply-To
- <alpine.LFD.0.98.0706241010480.3593@woody.linux-foundation.org>
Linus Torvalds <torvalds@linux-foundation.org> writes:
Show 23 quoted lines
> Side note: I think I made a mistake in making the run_command() a NORETURN > function and putting the exit() into it. It's probably better to instead > just make it return "int", and make the caller do > > exit(run_command(...)); > > and that makes it much prettier to have "run_command()" just return early > if an error happens (or doesn't happen). > > 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 (it was a perfect guinea-pig opportunity for Johannes's "rebase -i").
The changes to git.c (run_command) conflicted with GIT_WORK_TREE changes in a minor way. Matthias, could you sanity check the result once I push it out to 'next', please?