#!/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
export HGMERGE=internal:other
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
