Mercurial > hg
view tests/test-convert-bzr-ghosts.t @ 15604:b8d8599410da stable
rollback: always call destroyed() (regression from 1.9)
The contract for repo.destroyed() is that it is called whenever
changesets are destroyed, either by strip or by rollback. That
contract was inadvertently broken in 7c26ce9edbd2, when we made a
chunk of code conditional on destroying one of the working dir's
parents. Oops: it doesn't matter *which* changesets are destroyed or
what their relationship is to the working dir, we should call
repo.destroyed() whenever we destroy changesets.
author | Greg Ward <greg-hg@gerg.ca> |
---|---|
date | Thu, 01 Dec 2011 17:39:30 -0500 |
parents | b6a784e39ad4 |
children | f84dda152a55 |
line wrap: on
line source
$ . "$TESTDIR/bzr-definitions" $ cat > ghostcreator.py <<EOF > import sys > from bzrlib import workingtree > wt = workingtree.WorkingTree.open('.') > > message, ghostrev = sys.argv[1:] > wt.set_parent_ids(wt.get_parent_ids() + [ghostrev]) > wt.commit(message) > EOF ghost revisions $ mkdir test-ghost-revisions $ cd test-ghost-revisions $ bzr init -q source $ cd source $ echo content > somefile $ bzr add -q somefile $ bzr commit -q -m 'Initial layout setup' $ echo morecontent >> somefile $ python ../../ghostcreator.py 'Commit with ghost revision' ghostrev $ cd .. $ hg convert source source-hg initializing destination source-hg repository scanning source... sorting... converting... 1 Initial layout setup 0 Commit with ghost revision $ glog -R source-hg o 1 "Commit with ghost revision" files: somefile | o 0 "Initial layout setup" files: somefile