Mercurial > hg-stable
view tests/test-convert @ 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 | a7178eccf2dc |
children | d5bd1beff794 |
line wrap: on
line source
#!/bin/sh cat >> $HGRCPATH <<EOF [extensions] convert= [convert] hg.saverev=False EOF hg help convert hg init a cd a echo a > a hg ci -d'0 0' -Ama hg cp a b hg ci -d'1 0' -mb hg rm a hg ci -d'2 0' -mc hg mv b a hg ci -d'3 0' -md echo a >> a hg ci -d'4 0' -me cd .. hg convert a 2>&1 | grep -v 'subversion python bindings could not be loaded' hg --cwd a-hg pull ../a touch bogusfile echo % should fail hg convert a bogusfile mkdir bogusdir chmod 000 bogusdir echo % should fail hg convert a bogusdir echo % should succeed chmod 700 bogusdir hg convert a bogusdir echo % test pre and post conversion actions echo 'include b' > filemap hg convert --debug --filemap filemap a partialb | \ grep 'run hg' echo % converting empty dir should fail "nicely" mkdir emptydir # override $PATH to ensure p4 not visible; use $PYTHON in case we're # running from a devel copy, not a temp installation PATH=$BINDIR $PYTHON $BINDIR/hg convert emptydir 2>&1 | sed 's,file://.*/emptydir,.../emptydir,g' echo % convert with imaginary source type hg convert --source-type foo a a-foo echo % convert with imaginary sink type hg convert --dest-type foo a a-foo true