convert: refactor sink initialisation, to remove hardcoding of hg
We also introduce options to explicitly set the source and destination
repository types.
Improve testing of corner cases a little.
#!/bin/sh
# test children command
cat <<EOF >> $HGRCPATH
[extensions]
hgext.children=
EOF
echo "% init"
hg init t
cd t
echo "% no working directory"
hg children
echo % setup
echo 0 > file0
hg ci -qAm 0 -d '0 0'
echo 1 > file1
hg ci -qAm 1 -d '1 0'
echo 2 >> file0
hg ci -qAm 2 -d '2 0'
hg co null
echo 3 > file3
hg ci -qAm 3 -d '3 0'
echo "% hg children at revision 3 (tip)"
hg children
hg co null
echo "% hg children at nullrev (should be 0 and 3)"
hg children
hg co 1
echo "% hg children at revision 1 (should be 2)"
hg children
hg co 2
echo "% hg children at revision 2 (other head)"
hg children
for i in null 0 1 2 3; do
echo "% hg children -r $i"
hg children -r $i
done
echo "% hg children -r 0 file0 (should be 2)"
hg children -r 0 file0
echo "% hg children -r 1 file0 (should be 2)"
hg children -r 1 file0
hg co 0
echo "% hg children file0 at revision 0 (should be 2)"
hg children file0