Re: [PATCH] tests: prefer host Git to verify chainlint self-checks
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Dec 12, 2023, 19:30 UTC
- Message-ID
- <xmqq8r5zrzg1.fsf@gitster.g>
- In-Reply-To
- <4112adbe467c14a8f22a87ea41aa4705f8760cf6.1702380646.git.ps@pks.im>
Patrick Steinhardt <ps@pks.im> writes:
Show 18 quoted lines
> To accomodate for cases where the host system has no Git installation we > use the locally-compiled version of Git. This can result in problems > though when the Git project's repository is using extensions that the > locally-compiled version of Git doesn't understand. It will refuse to > run and thus cause the checks to fail. > > Fix this issue by prefering the host's Git resolved via PATH. If it > doesn't exist, then we fall back to the locally-compiled Git version and > diff as before. > > Signed-off-by: Patrick Steinhardt <ps@pks.im> > --- > > I've started to dogfood the reftable backend on my local machine and > have converted many repositories to use the reftable backend. This > surfaced the described issue because the repository now sets up the > "extensions.refStorage" extension, and thus "check-chainlint" fails > depending on which versions of Git I'm trying to compile and test.
I do not think "prefer host Git" is necessarily a good idea; falling back to use host Git is perfectly fine, of course.
Other than that, I agree with the motivation.
Show 18 quoted lines
> t/Makefile | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/t/Makefile b/t/Makefile > index 225aaf78ed..8b7f7aceaa 100644 > --- a/t/Makefile > +++ b/t/Makefile > @@ -111,7 +111,9 @@ check-chainlint: > if test -f ../GIT-BUILD-OPTIONS; then \ > . ../GIT-BUILD-OPTIONS; \ > fi && \ > - if test -x ../git$$X; then \ > + if command -v git >/dev/null 2>&1; then \ > + DIFFW="git --no-pager diff -w --no-index"; \ > + elif test -x ../git$$X; then \ > DIFFW="../git$$X --no-pager diff -w --no-index"; \ > else \ > DIFFW="diff -w -u"; \