view tests/test-convert-hg-sink @ 11963:7c3aa579d98a

parendelta: fix computation of base rev (fixes issue2337) Refactor revlog._addrevision() and put the correct base rev in the parent-delta case: base(rev) should always be equal to the first full snapshot that is needed by the delta chain, in both parent-delta and tip-delta case. Before this fix, the base rev was in most case wrong (and in the case where p1 == nullid, this triggered the bug from issue2337). This means that repositories converted to parent-delta earlier are corrupted and needs to be reconverted.
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Wed, 18 Aug 2010 19:37:23 +0200
parents 68e0a55eee6e
children
line wrap: on
line source

#!/bin/sh

cat >> $HGRCPATH <<EOF
[extensions]
convert=
[convert]
hg.saverev=False
EOF

hg init orig
cd orig
echo foo > foo
echo bar > bar
hg ci -qAm 'add foo and bar'

hg rm foo
hg ci -m 'remove foo'

mkdir foo
echo file > foo/file
hg ci -qAm 'add foo/file'

hg tag some-tag

hg log
cd ..

hg convert orig new 2>&1 | grep -v 'subversion python bindings could not be loaded'
cd new
hg out ../orig

echo '% dirstate should be empty:'
hg debugstate
hg parents -q

hg up -C
hg copy bar baz
echo '% put something in the dirstate:'
hg debugstate > debugstate
grep baz debugstate

echo '% add a new revision in the original repo'
cd ../orig
echo baz > baz
hg ci -qAm 'add baz'

cd ..
hg convert orig new 2>&1 | grep -v 'subversion python bindings could not be loaded'
cd new
hg out ../orig
echo '% dirstate should be the same (no output below):'
hg debugstate > new-debugstate
diff debugstate new-debugstate

echo '% no copies'
hg up -C
hg debugrename baz
cd ..

echo '% test tag rewriting'
cat > filemap <<EOF
exclude foo
EOF
hg convert --filemap filemap orig new-filemap 2>&1 | grep -v 'subversion python bindings could not be loaded'
cd new-filemap
hg tags
cd ..