Re: AIX failures on parallel checkout (new in v2.32.0-rc*)
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 26, 2021, 23:00 UTC
- Message-ID
- <xmqqa6ohayn7.fsf@gitster.g>
- In-Reply-To
- <CAHd-oW6X4cwD_yLNFONPnXXUAFPxgDoccv2SOdpeLrqmHCJB4Q@mail.gmail.com>
Matheus Tavares Bernardino <matheus.bernardino@usp.br> writes:
Show 27 quoted lines
> Hi, Ævar > > On Wed, May 26, 2021 at 3:40 PM Ævar Arnfjörð Bjarmason > <avarab@gmail.com> 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.