convert: fix --datesort ordering
Two branches a and b starting at root, with commits interleaved like:
root a0 a1 b0 a2 a3 b1
were converted in the following order:
root a0 b0 a1 b1 a2 a3
Replace depth based toposort with a more classic traversal method.
#!/bin/sh
cat >> $HGRCPATH <<EOF
[extensions]
convert=
graphlog=
EOF
hg init t
cd t
echo a >> a
hg ci -Am a0 -d '1 0'
hg branch brancha
echo a >> a
hg ci -m a1 -d '2 0'
echo a >> a
hg ci -m a2 -d '3 0'
echo a >> a
hg ci -m a3 -d '4 0'
hg up -C 0
hg branch branchb
echo b >> b
hg ci -Am b0 -d '5 0'
hg up -C brancha
echo a >> a
hg ci -m a4 -d '6 0'
echo a >> a
hg ci -m a5 -d '7 0'
echo a >> a
hg ci -m a6 -d '8 0'
hg up -C branchb
echo b >> b
hg ci -m b1 -d '9 0'
cd ..
echo % convert with datesort
hg convert --datesort t t2
echo % graph converted repo
hg -R t2 glog --template '#rev# "#desc#"\n'