run-tests: redefine --with-hg so it takes the 'hg' script to run.
- in parseargs(), check that --with-hg value is valid
- add handy --local option for "--with-hg=../hg"
- ensure that we always set PATH and PYTHONPATH (not just
when doing a temporary install)
- override any existing PYTHONPATH, so test success does not
depend on whatever happens to be in the caller's environment
- give tests a little more control by exporting $PYTHON to the
environment; needed by test-convert and test-mergetool when
they run hg with a stripped-down $PATH
Also, add a big comment explaining all the corner cases to test for the
next person who tries to modify this script.
#!/bin/sh
cat <<EOF >> $HGRCPATH
[extensions]
mq=
[defaults]
log = --template "{rev}: {desc}\\n"
heads = --template "{rev}: {desc}\\n"
incoming = --template "{rev}: {desc}\\n"
EOF
echo "====== Setup main"
hg init base
cd base
echo "One" > one
hg add
hg ci -m "main: one added."
echo "++" >> one
hg ci -m "main: one updated."
echo "====== Bundle main"
hg bundle --base=null ../main.hg
cd ..
echo "====== Incoming to fresh repo"
hg init fresh
echo ">> hg -R fresh incoming main.hg"
hg -R fresh incoming main.hg
echo ">> hg -R fresh incoming bundle:fresh+main.hg"
hg -R fresh incoming bundle:fresh+main.hg
echo "====== Setup queue"
cd base
hg qinit -c
hg qnew -m "patch: two added." two.patch
echo two > two
hg add
hg qrefresh
hg qcommit -m "queue: two.patch added."
hg qpop -a
echo "====== Bundle queue"
hg -R .hg/patches bundle --base=null ../queue.hgq
cd ..
echo "====== Clone base"
hg clone base copy
cd copy
hg qinit -c
echo "====== Incoming queue bundle"
echo ">> hg -R .hg/patches incoming ../queue.hgq"
hg -R .hg/patches incoming ../queue.hgq
echo "====== Pull queue bundle"
echo ">> hg -R .hg/patches pull --update ../queue.hgq"
hg -R .hg/patches pull --update ../queue.hgq
echo ">> hg -R .hg/patches heads"
hg -R .hg/patches heads
echo ">> hg -R .hg/patches log"
hg -R .hg/patches log
echo ">> hg qseries"
hg qseries
cd ..
echo "====== Clone base again"
hg clone base copy2
cd copy2
hg qinit -c
echo "====== Unbundle queue bundle"
echo ">> hg -R .hg/patches unbundle --update ../queue.hgq"
hg -R .hg/patches unbundle --update ../queue.hgq
echo ">> hg -R .hg/patches heads"
hg -R .hg/patches heads
echo ">> hg -R .hg/patches log"
hg -R .hg/patches log
echo ">> hg qseries"
hg qseries
cd ..