From: Johannes Schindelin Date: Fri, 12 Feb 2021 14:50:04 +0000 (+0100) Subject: Sync with 2.26.3 X-Git-Tag: v2.27.1~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2d1142a3e8455af1bdab2cb19dfaf428cdc03459;p=thirdparty%2Fgit.git Sync with 2.26.3 * maint-2.26: 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 --- 2d1142a3e8455af1bdab2cb19dfaf428cdc03459 diff --cc t/t0021/rot13-filter.pl index cd32a82da5,007f2d78ea..7bb93768f3 --- a/t/t0021/rot13-filter.pl +++ b/t/t0021/rot13-filter.pl @@@ -134,14 -147,10 +147,16 @@@ while (1) if ( $buffer eq "can-delay=1" ) { if ( exists $DELAY{$pathname} and $DELAY{$pathname}{"requested"} == 0 ) { $DELAY{$pathname}{"requested"} = 1; + } elsif ( !exists $DELAY{$pathname} and $always_delay ) { + $DELAY{$pathname} = { "requested" => 1, "count" => 1 }; } + } elsif ($buffer =~ /^(ref|treeish|blob)=/) { + print $debug " $buffer"; } else { + # In general, filters need to be graceful about + # new metadata, since it's documented that we + # can pass any key-value pairs, but for tests, + # let's be a little stricter. die "Unknown message '$buffer'"; } diff --cc unpack-trees.c index 4be5fc3075,207616c679..436598d210 --- a/unpack-trees.c +++ b/unpack-trees.c @@@ -415,8 -381,11 +415,11 @@@ static int check_updates(struct unpack_ if (o->clone) setup_collided_checkout_detection(&state, index); - progress = get_progress(o); + progress = get_progress(o, index); + /* Start with clean cache to avoid using any possibly outdated info. */ + invalidate_lstat_cache(); + git_attr_set_direction(GIT_ATTR_CHECKOUT); if (should_update_submodules())