]> git.ipfire.org Git - thirdparty/git.git/commit
checkout-index: propagate errors to exit code
authorJeff King <peff@peff.net>
Tue, 27 Oct 2020 07:37:14 +0000 (03:37 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 27 Oct 2020 19:41:56 +0000 (12:41 -0700)
commit7e41061588eab25d0c015e79aa8d04956bee482a
treef3f81e76dd35c59a34e3126c1305c809e5bc971e
parent0b809c82480a870f4a46fa66f0eddc1c1b04cf6b
checkout-index: propagate errors to exit code

If we encounter an error while checking out an explicit path, we print a
message to stderr but do not actually exit with a non-zero code. While
this is a plumbing command and the behavior goes all the way back to
33db5f4d90 (Add a "checkout-cache" command which does what the name
suggests., 2005-04-09), this is almost certainly an oversight:

  - we _do_ return an exit code from checkout_file(); the caller just
    never reads it

  - errors while checking out all paths (with "-a") do result in a
    non-zero exit code.

  - it would be quite unusual not to use the exit code for an error,
    as otherwise the caller has no idea the command failed except by
    scraping stderr

To keep our tests simple and portable, we can use the most obvious
error: asking to checkout a path which is not in the index at all.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/checkout-index.c
t/t2004-checkout-cache-temp.sh
t/t2006-checkout-index-basic.sh