Mercurial > hg
view tests/test-merge1 @ 5239:8860f29447c1
imerge: fix ancestor calculation
If wctx already has two parents, ancestor calculation is wrong.
Normally merge is called before wctx gets the second parent, so
we simulate this in imerge by temporarily popping the second parent
before calling filemerge. Highly dirty.
This patch also handles the ParseError move from cmdutil to dispatch.
author | Brendan Cully <brendan@kublai.com> |
---|---|
date | Thu, 23 Aug 2007 19:51:59 -0700 |
parents | ccfe423d3d0a |
children | a6477aa893b8 |
line wrap: on
line source
#!/bin/sh cat <<EOF > merge import sys, os print "merging for", os.path.basename(sys.argv[1]) EOF HGMERGE="python ../merge"; export HGMERGE mkdir t cd t hg init echo This is file a1 > a hg add a hg commit -m "commit #0" -d "1000000 0" echo This is file b1 > b hg add b hg commit -m "commit #1" -d "1000000 0" hg update 0 echo This is file c1 > c hg add c hg commit -m "commit #2" -d "1000000 0" echo This is file b1 > b echo %% no merges expected hg merge 1 hg diff --nodates hg status cd ..; rm -r t mkdir t cd t hg init echo This is file a1 > a hg add a hg commit -m "commit #0" -d "1000000 0" echo This is file b1 > b hg add b hg commit -m "commit #1" -d "1000000 0" hg update 0 echo This is file c1 > c hg add c hg commit -m "commit #2" -d "1000000 0" echo This is file b2 > b echo %% merge should fail hg merge 1 echo %% merge of b expected hg merge -f 1 hg diff --nodates hg status cd ..; rm -r t echo %% mkdir t cd t hg init echo This is file a1 > a hg add a hg commit -m "commit #0" -d "1000000 0" echo This is file b1 > b hg add b hg commit -m "commit #1" -d "1000000 0" echo This is file b22 > b hg commit -m "commit #2" -d "1000000 0" hg update 1 echo This is file c1 > c hg add c hg commit -m "commit #3" -d "1000000 0" echo 'Contents of b should be "this is file b1"' cat b echo This is file b22 > b echo %% merge fails hg merge 2 echo %% merge expected! hg merge -f 2 hg diff --nodates hg status cd ..; rm -r t mkdir t cd t hg init echo This is file a1 > a hg add a hg commit -m "commit #0" -d "1000000 0" echo This is file b1 > b hg add b hg commit -m "commit #1" -d "1000000 0" echo This is file b22 > b hg commit -m "commit #2" -d "1000000 0" hg update 1 echo This is file c1 > c hg add c hg commit -m "commit #3" -d "1000000 0" echo This is file b33 > b echo %% merge of b should fail hg merge 2 echo %% merge of b expected hg merge -f 2 hg diff --nodates hg status