tests/test-merge-default
author Greg Ward <greg-hg@gerg.ca>
Mon, 14 Jun 2010 16:06:52 -0400
changeset 11353 f2b25e8ea6c1
parent 10658 95c7c4b7e67a
permissions -rwxr-xr-x
merge: when current branch has 1 or > 2 heads, actually abort. Currently merge just prints abort-like messages to stderr and then exits with a misleading status 0 (cleverly disguised as "False"). With this change it raises Abort, just like every other fatal error.

#!/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