#!/bin/sh
hg init
echo a > a
hg commit -A -ma
echo b >> a
hg commit -mb
echo c >> a
hg commit -mc
hg up 1
echo d >> a
hg commit -md
hg up 1
echo e >> a
hg commit -me
hg up 1
echo % should fail because not at a head
hg merge
hg up
echo % should fail because \> 2 heads
HGMERGE=internal:other; export HGMERGE
hg merge
echo % should succeed
hg merge 2
hg commit -mm1
echo % should succeed - 2 heads
hg merge -P
hg merge
hg commit -mm2
echo % should fail because at tip
hg merge
hg up 0
echo % should fail because 1 head
hg merge
hg up 3
echo f >> a
hg branch foobranch
hg commit -mf
echo % should fail because merge with other branch
hg merge
# Test for issue2043: ensure that 'merge -P' shows ancestors of 6 that
# are not ancestors of 7, regardless of where their least common
# ancestor is.
echo % merge preview not affected by common ancestor
hg up -q 7
hg merge -q -P 6 # expect: 2, 4, 5, 6
true