Mercurial > hg
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 ..