Mercurial > hg-stable
view tests/test-repair-strip @ 10189:e451e599fbcf
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.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Fri, 01 Jan 2010 20:54:05 +0100 |
parents | 4a1b24dbf753 |
children | 4bb4895e1693 |
line wrap: on
line source
#!/bin/sh echo "[extensions]" >> $HGRCPATH echo "mq=">> $HGRCPATH teststrip() { hg -q up -C $1 echo % before update $1, strip $2 hg parents chmod -$3 $4 hg strip $2 2>&1 | sed 's/\(saving bundle to \).*/\1/' | sed 's/Permission denied.*\.hg\/store\/\(.*\)/Permission denied \.hg\/store\/\1/' echo % after update $1, strip $2 chmod +$3 $4 hg verify echo % journal contents if [ -f .hg/store/journal ]; then sed -e 's/\.i[^\n]*/\.i/' .hg/store/journal else echo "(no journal)" fi ls .hg/store/journal >/dev/null 2>&1 && hg recover ls .hg/strip-backup/* >/dev/null 2>&1 && hg unbundle -q .hg/strip-backup/* rm -rf .hg/strip-backup } hg init test cd test echo a > a hg -q ci -m "a" -A echo b > b hg -q ci -m "b" -A echo b2 >> b hg -q ci -m "b2" -A echo c > c hg -q ci -m "c" -A teststrip 0 2 w .hg/store/data/b.i teststrip 0 2 r .hg/store/data/b.i teststrip 0 2 w .hg/store/00manifest.i