view tests/test-bheads @ 9717:68a1b9d0663e

update: allow branch crossing without -c or -C, with no uncommitted changes Update will now allow crossing branches within the same named branch, when given a specific revision, if the working dir is clean, without requiring the -c or -C option. Abort if no revision is given and this would cross branches. Minor change to abort message if uncommitted changes are found. Modify test-update-branches and output to reflect the altered case. Modify test-merge5.out to reflect the altered case. Modify test-up-local-change.out with new message.
author Stuart W Marks <smarks@smarks.org>
date Thu, 05 Nov 2009 10:53:59 +0100
parents 5b7da468531b
children fd511e9eeea6
line wrap: on
line source

#!/bin/sh

heads()
{
    hg heads --template '{rev}: {desc|firstline|strip}\n' "$@"
}

hg init a
cd a
echo 'root' >root
hg add root
hg commit -m "Adding root node"
heads
echo '-------'
heads .

echo '======='
echo 'a' >a
hg add a
hg branch a
hg commit -m "Adding a branch"
heads
echo '-------'
heads .

echo '======='
hg update -C 0
echo 'b' >b
hg add b
hg branch b
hg commit -m "Adding b branch"
heads
echo '-------'
heads .

echo '======='
echo 'bh1' >bh1
hg add bh1
hg commit -m "Adding b branch head 1"
heads
echo '-------'
heads .

echo '======='
hg update -C 2
echo 'bh2' >bh2
hg add bh2
hg commit -m "Adding b branch head 2"
heads
echo '-------'
heads .

echo '======='
hg update -C 2
echo 'bh3' >bh3
hg add bh3
hg commit -m "Adding b branch head 3"
heads
echo '-------'
heads .

echo '======='
hg merge 4
hg commit -m "Merging b branch head 2 and b branch head 3"
heads
echo '-------'
heads .

echo '======='
echo 'c' >c
hg add c
hg branch c
hg commit -m "Adding c branch"
heads
echo '-------'
heads .

echo '======='
heads -r 3 .
echo $?
echo '-------'
heads -r 2 .
echo $?
echo '-------'
hg update -C 4
echo $?
echo '-------'
heads -r 3 .
echo $?
echo '-------'
heads -r 2 .
echo $?
echo '-------'
heads -r 7 .
echo $?

echo '======='
for i in 0 1 2 3 4 5 6 7; do
    hg update -C "$i"
    heads
    echo '-------'
    heads .
    echo '-------'
done

echo '======='
for i in a b c z; do
    heads "$i"
    echo '-------'
done

echo '======='
heads 0 1 2 3 4 5 6 7