shrink-revlog: add "reverse postorder" and "postorder reverse" toposorts.
Based on a patch by Benoit Boissinot, adapted to the pluggable sort
algorithm design. toposort_reversepostorder() is a very good
performer; it's designed to recreate what the revlog would have looked
like if Mercurial had parent deltas now. toposort_postorderreverse()
is unstable and very inconsistent, but perhaps with some work it could
be made better.
#!/bin/sh
"$TESTDIR/hghave" no-outer-repo || exit 80
echo % no repo
hg id
echo % create repo
hg init test
cd test
echo a > a
hg ci -Ama
echo % basic id usage
hg id
hg id --debug
hg id -q
hg id -v
echo % with options
hg id -r.
hg id -n
hg id -t
hg id -b
hg id -i
hg id -n -t -b -i
echo % with modifications
echo b > a
hg id -n -t -b -i
echo % other local repo
cd ..
hg -R test id
hg id test
echo % with remote http repo
cd test
hg serve -p $HGPORT1 -d --pid-file=hg.pid
cat hg.pid >> $DAEMON_PIDS
hg id http://localhost:$HGPORT1/
echo % remote with tags?
hg id -t http://localhost:$HGPORT1/
true # ends with util.Abort -> returns 255