tests/test-mq-qdelete
author Patrick Mezard <pmezard@gmail.com>
Fri, 01 Jan 2010 20:54:05 +0100
changeset 10189 e451e599fbcf
parent 7020 5e9965407d53
child 11365 c3d7daa0928e
permissions -rwxr-xr-x
patch: support diff data loss detection and upgrade In worst case, generating diff in upgrade mode can be two times more expensive than generating it in git mode directly: we may have to regenerate the whole diff again whenever a git feature is detected. Also, the first diff attempt is completely buffered instead of being streamed. That said, even without having profiled it yet, I am convinced we can fast-path the upgrade mode if necessary were it to be used in regular diff commands, and not only in mq where avoiding data loss is worth the price.

#!/bin/sh

echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH

hg init a
cd a

echo 'base' > base
hg ci -Ambase -d '1 0'

hg qnew -d '1 0' a
hg qnew -d '1 0' b
hg qnew -d '1 0' c

hg qdel

hg qdel c
hg qpop
hg qdel c
hg qseries
ls .hg/patches
hg qpop
hg qdel -k b
ls .hg/patches
hg qdel -r a
hg qapplied
hg log --template '{rev} {desc}\n'

hg qnew d
hg qnew e
hg qnew f

hg qdel -r e
hg qdel -r qbase:e
hg qapplied
hg log --template '{rev} {desc}\n'

cd ..
hg init b
cd b

echo 'base' > base
hg ci -Ambase -d '1 0'

hg qfinish
hg qfinish -a

hg qnew -d '1 0' a
hg qnew -d '1 0' b
hg qnew c # XXX fails to apply by /usr/bin/patch if we put a date

hg qfinish 0
hg qfinish b

hg qpop
hg qfinish -a c
hg qpush

hg qfinish qbase:b
hg qapplied
hg log --template '{rev} {desc}\n'

hg qfinish -a c
hg qapplied
hg log --template '{rev} {desc}\n'
ls .hg/patches