Patrick Steinhardt <ps@xxxxxx> writes: > 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@xxxxxx> > --- > > 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. > 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"; \