t/perf: fix regression in testing older versions of git
authorJeff King <peff@peff.net>
Wed, 22 Jun 2016 19:40:13 +0000 (15:40 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 22 Jun 2016 20:47:16 +0000 (13:47 -0700)
commit1a0962dee51addaa44a53f9d9782e8231d27cc96
treedd681f2fd5f800cb5147729793bad6bd3b5049ad
parent7501b59210906c89747dca1c44e15d8c2214c01d
t/perf: fix regression in testing older versions of git

Commit 7501b59 (perf: make the tests work in worktrees,
2016-05-13) introduced the use of "git rev-parse --git-path"
in the perf-lib setup code. Because the to-be-tested version
of git is at the front of the $PATH when this code runs,
this means we cannot use modern versions of t/perf to test
versions of git older than v2.5.0 (when that option was
introduced).

This is a symptom of a more general problem. The t/perf
suite is essentially independent of git versions, and
ideally we would be able to run the most modern and complete
set of tests across many historical versions (to see how
they compare). But any setup code they run is therefore
required to use the lowest common denominator we expect to
test.

So let's introduce a new variable, $MODERN_GIT, that we can
use both in perf-lib and in the test setup to get a reliable
set of git features (we might change git and break some
tests, of course, but $MODERN_GIT is tied to the same
version of git as the t/perf scripts, so they can be fixed
or adjusted together).

This commit fixes the "--git-path" case, but does not
mass-convert existing setup code to use $MODERN_GIT. Most
setup code is fairly vanilla and will work with effectively
all versions. But now the tool is there to fix any other
issues we find going forward.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/perf/README
t/perf/perf-lib.sh