Mercurial > hg
view tests/test-strip-cross @ 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 | 8e7796a990c5 |
children | 12e5149cafca |
line wrap: on
line source
#!/bin/sh # test stripping of filelogs where the linkrev doesn't always increase echo '[extensions]' >> $HGRCPATH echo 'hgext.mq =' >> $HGRCPATH hg init orig cd orig hidefilename() { sed -e 's/saving bundle to .*strip-backup/saving bundle to strip-backup/' } commit() { hg up -qC null count=1 for i in "$@"; do for f in $i; do echo $count > $f done count=`expr $count + 1` done hg commit -qAm "$*" } # 2 1 0 2 0 1 2 commit '201 210' commit '102 120' '210' commit '021' commit '201' '021 120' commit '012 021' '102 201' '120 210' commit 'manifest-file' commit '102 120' '012 210' '021 201' commit '201 210' '021 120' '012 102' HGUSER=another-user; export HGUSER commit 'manifest-file' commit '012' 'manifest-file' cd .. hg clone -q -U -r -1 -r -2 -r -3 -r -4 -r -6 orig crossed for i in crossed/.hg/store/00manifest.i crossed/.hg/store/data/*.i; do echo $i hg debugindex $i echo done for i in 0 1 2 3 4; do hg clone -q -U --pull crossed $i echo "% Trying to strip revision $i" hg --cwd $i strip $i 2>&1 | hidefilename echo "% Verifying" hg --cwd $i verify echo done