Mercurial > hg-stable
changeset 33206:45d6e2767a93
tests: use system hg only if changelog or dirstate can't be read
The bundled hg should work flawlessly in most cases. Make it depend on
the external installation only if necessary since we can't control the
whole environment.
This patch doesn't implement the "exit 80" idea proposed by Jun. I don't
want to keep the capability checking sync with the actual tests.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 02 Jul 2017 13:24:23 +0900 |
parents | 2d7300cf3f3f |
children | 895ecec31c70 |
files | tests/helpers-testrepo.sh |
diffstat | 1 files changed, 6 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/helpers-testrepo.sh Sun Jul 02 13:20:28 2017 +0900 +++ b/tests/helpers-testrepo.sh Sun Jul 02 13:24:23 2017 +0900 @@ -1,5 +1,6 @@ -# Invoke the system hg installation (rather than the local hg version being -# tested). +# In most cases, the mercurial repository can be read by the bundled hg, but +# that isn't always true because third-party extensions may change the store +# format, for example. In which case, the system hg installation is used. # # We want to use the hg version being tested when interacting with the test # repository, and the system hg when interacting with the mercurial source code @@ -41,11 +42,9 @@ evolution = createmarkers EOF -# Most test-check-* sourcing this file run "hg files", which is not available -# in ancient versions of hg. So we double check if "syshg files" works and -# fallback to hg bundled in the repo. -syshg files -h >/dev/null 2>/dev/null -if [ $? -eq 0 ]; then +# Use the system hg command if the bundled hg can't read the repository with +# no warning nor error. +if [ -n "`hg id -R "$TESTDIR/.." 2>&1 >/dev/null`" ]; then alias testrepohg=syshg alias testrepohgenv=syshgenv else