Mercurial > hg
view tests/test-convert @ 8742:a964ab624385
merge: allow merging going backwards
New behavior is generally superior and more correct, except possibly
with regards to missing files. hg up . is now effectively a no-op,
which is probably the desired behavior for people expecting to move to
tip, but may surprise people who were expecting deleted files to
reappear.
case 1: update to .
a-w -> a-w
classic: ancestor a
missing recreated right?
rmed recreated WRONG
added forgotten WRONG
changed preserved RIGHT
conflicted can't happen
backward merge: ancestor a (NO EFFECT)
missing missing wrong?
rm'ed rm'ed RIGHT
added preserved RIGHT
changed preserved RIGHT
conflicted can't happen
case 2: update to ancestor of .
a-b-w -> b-w
\
a
classic: ancestor a
missing recreated right?
rmed recreated wrong?
added forgotten wrong?
changed preserved RIGHT
conflicted preserved wrong?
backwards merge: ancestor b
missing missing or conflict right?
rm'ed missing or conflict right?
changed preserved RIGHT
conflicted merge RIGHT
added preserved right?
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 08 Jun 2009 18:14:44 -0500 |
parents | 0941ee76489e |
children | a7178eccf2dc |
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'