From: Johannes Schindelin Date: Fri, 12 Feb 2021 14:51:12 +0000 (+0100) Subject: Sync with 2.29.3 X-Git-Tag: v2.30.2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e4e68081bb811672b069eb1d6c97e57dd0764d51;p=thirdparty%2Fgit.git Sync with 2.29.3 * maint-2.29: Git 2.29.3 Git 2.28.1 Git 2.27.1 Git 2.26.3 Git 2.25.5 Git 2.24.4 Git 2.23.4 Git 2.22.5 Git 2.21.4 Git 2.20.5 Git 2.19.6 Git 2.18.5 Git 2.17.6 unpack_trees(): start with a fresh lstat cache run-command: invalidate lstat cache after a command finished checkout: fix bug that makes checkout follow symlinks in leading path --- e4e68081bb811672b069eb1d6c97e57dd0764d51 diff --cc t/t2006-checkout-index-basic.sh index 8e181dbf01,19aada33a3..7b25a3572e --- a/t/t2006-checkout-index-basic.sh +++ b/t/t2006-checkout-index-basic.sh @@@ -21,15 -21,50 +21,60 @@@ test_expect_success 'checkout-index -h test_i18ngrep "[Uu]sage" broken/usage ' +test_expect_success 'checkout-index reports errors (cmdline)' ' + test_must_fail git checkout-index -- does-not-exist 2>stderr && + test_i18ngrep not.in.the.cache stderr +' + +test_expect_success 'checkout-index reports errors (stdin)' ' + echo does-not-exist | + test_must_fail git checkout-index --stdin 2>stderr && + test_i18ngrep not.in.the.cache stderr +' + for mode in 'case' 'utf-8' + do + case "$mode" in + case) dir='A' symlink='a' mode_prereq='CASE_INSENSITIVE_FS' ;; + utf-8) + dir=$(printf "\141\314\210") symlink=$(printf "\303\244") + mode_prereq='UTF8_NFD_TO_NFC' ;; + esac + + test_expect_success SYMLINKS,$mode_prereq \ + "checkout-index with $mode-collision don't write to the wrong place" ' + git init $mode-collision && + ( + cd $mode-collision && + mkdir target-dir && + + empty_obj_hex=$(git hash-object -w --stdin objs <<-EOF && + 100644 blob ${empty_obj_hex} ${dir}/x + 100644 blob ${empty_obj_hex} ${dir}/y + 100644 blob ${empty_obj_hex} ${dir}/z + 120000 blob ${symlink_hex} ${symlink} + EOF + + git update-index --index-info