While working on another topic, I noticed that "git checkout-index -- path" does not propagate errors through its exit code. It has been that way for so long that I almost wondered if it is intentional, but I'm pretty sure it's not. A bit scary, though. :) [1/2]: checkout-index: drop error message from empty --stage=all [2/2]: checkout-index: propagate errors to exit code builtin/checkout-index.c | 16 ++++++++++++++-- t/t2004-checkout-cache-temp.sh | 10 +++++++++- t/t2006-checkout-index-basic.sh | 11 +++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) -Peff