helpers-testrepo.sh
60 lines
| 1.9 KiB
| application/x-sh
|
BashLexer
/ tests / helpers-testrepo.sh
|
r33201 | # 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. | ||||
|
r29219 | # | ||
|
r33116 | # 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 | ||||
# repository. | ||||
|
r29219 | # | ||
|
r33116 | # The mercurial source repository was typically orignally cloned with the | ||
# system mercurial installation, and may require extensions or settings from | ||||
# the system installation. | ||||
|
r37360 | |||
|
r37493 | if [ -n "$HGTESTEXTRAEXTENSIONS" ]; then | ||
|
r37360 | for extension in $HGTESTEXTRAEXTENSIONS; do | ||
extraoptions="$extraoptions --config extensions.$extension=!" | ||||
done | ||||
fi | ||||
|
r33116 | syshg () { | ||
( | ||||
syshgenv | ||||
exec hg "$@" | ||||
) | ||||
} | ||||
# Revert the environment so that running "hg" runs the system hg | ||||
# rather than the test hg installation. | ||||
syshgenv () { | ||||
|
r33121 | . "$HGTEST_RESTOREENV" | ||
|
r33116 | HGPLAIN=1 | ||
export HGPLAIN | ||||
} | ||||
|
r33120 | |||
|
r33200 | # The test-repo is a live hg repository which may have evolution markers | ||
# created, e.g. when a ~/.hgrc enabled evolution. | ||||
# | ||||
# Tests may be run using a custom HGRCPATH, which do not enable evolution | ||||
# markers by default. | ||||
# | ||||
# If test-repo includes evolution markers, and we do not enable evolution | ||||
# markers, hg will occasionally complain when it notices them, which disrupts | ||||
# tests resulting in sporadic failures. | ||||
# | ||||
# Since we aren't performing any write operations on the test-repo, there's | ||||
# no harm in telling hg that we support evolution markers, which is what the | ||||
# following lines for the hgrc file do: | ||||
cat >> "$HGRCPATH" << EOF | ||||
[experimental] | ||||
evolution = createmarkers | ||||
EOF | ||||
|
r33201 | # 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 | ||||
|
r33199 | alias testrepohg=syshg | ||
alias testrepohgenv=syshgenv | ||||
else | ||||
|
r37360 | alias testrepohg="hg $extraoptions" | ||
|
r33199 | alias testrepohgenv=: | ||
|
r33120 | fi | ||