Matheus Tavares Bernardino <matheus.bernardino@xxxxxx> writes: > Hi, Ævar > > On Wed, May 26, 2021 at 3:40 PM Ævar Arnfjörð Bjarmason > <avarab@xxxxxxxxx> wrote: >> >> + test_checkout_workers 0 git -C various_sequential checkout --recurse-submodules B2 >> error: Your local changes to the following files would be overwritten by checkout: >> d >> h >> j >> Please commit your changes or stash them before you switch branches. >> Aborting > > I requested an account on the GCC farm to debug this, and the problem > seems to be that AIX's `cp -R` defaults to following symlinks instead > of copying them. In the above error message, 'd', 'h' and 'j' are all > symlinks which were followed when copying the test repo, so these > paths indeed won't match what's in the index, which makes checkout > abort. > > Fortunately, there is a POSIX option to force cp to copy the symlinks: > '-P'. Adding this flag to the cp invocation at line 117 of t2080 makes > all parallel checkout tests pass on AIX. > > We also already use `cp -R -P` in the test suite (at t7001), and > without any prereq, so I guess all platforms we are testing git at do > support this flag in cp. I'll send a patch adding the flag at t2080. Thanks for a quick analysis. Very much appreciated. 00764ca1 (test: fix t7001 cp to use POSIX options, 2014-04-11) only mentions that "-R -P -p" is used now in place of "-a" that we used to use (the latter of which is not POSIX). Please highlight why we want -P in the log message (i.e. we want to copy the link in these tests because ...) for the fixing commit. Thanks.