view tests/test-rebase-parameters @ 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 8766fee6f225
children b345b1cc124f
line wrap: on
line source

#!/bin/sh

echo "[extensions]" >> $HGRCPATH
echo "rebase=" >> $HGRCPATH

addcommit () {
    echo $1 > $1
    hg add $1
    hg commit -d "${2} 0" -m $1
}

commit () {
    hg commit -d "${2} 0" -m $1
}

createrepo () {
    hg init a
    cd a
    addcommit "c1" 0
    addcommit "c2" 1
    addcommit "c3" 2

    hg update -C 1
    addcommit "l1" 3
    addcommit "l2" 4
    addcommit "l3" 5

    hg update -C 2
    addcommit "r1" 6
    addcommit "r2" 7
}

createrepo > /dev/null 2>&1
echo "% These fail"
echo
echo "% Use continue and abort"
hg rebase --continue --abort

echo
echo "% Use continue and collapse"
hg rebase --continue --collapse

echo
echo "% Use continue/abort and dest/source"
hg rebase --continue --dest 4

echo
echo "% Use source and base"
hg rebase --base 5 --source 4

echo
echo "% Rebase with no arguments - from current"
hg rebase

echo
echo "% Rebase with no arguments - from the current branch"
hg update 6
hg rebase

echo "% ----------"
echo "% These work"
echo
echo "% Rebase with no arguments (from 3 onto 7)"
hg update -C 5
hg rebase 2>&1 | sed 's/\(saving bundle to \).*/\1/'

echo "% Try to rollback after a rebase (fail)"
hg rollback

createrepo > /dev/null 2>&1
echo
echo "% Rebase with base == '.' => same as no arguments (from 3 onto 7)"
hg update -C 5
hg rebase --base . 2>&1 | sed 's/\(saving bundle to \).*/\1/'

createrepo > /dev/null 2>&1
echo
echo "% Rebase with dest == `hg branch` => same as no arguments (from 3 onto 7)"
hg update -C 5
hg rebase --dest `hg branch` 2>&1 | sed 's/\(saving bundle to \).*/\1/'

createrepo > /dev/null 2>&1
echo
echo "% Specify only source (from 4 onto 7)"
hg rebase --source 4 2>&1 | sed 's/\(saving bundle to \).*/\1/'

createrepo > /dev/null 2>&1
echo
echo "% Specify only dest (from 3 onto 6)"
hg update -C 5
hg rebase --dest 6 2>&1 | sed 's/\(saving bundle to \).*/\1/'

createrepo > /dev/null 2>&1
echo
echo "% Specify only base (from 3 onto 7)"
hg rebase --base 5 2>&1 | sed 's/\(saving bundle to \).*/\1/'

createrepo > /dev/null 2>&1
echo
echo "% Specify source and dest (from 4 onto 6)"
hg rebase --source 4 --dest 6 2>&1 | sed 's/\(saving bundle to \).*/\1/'

createrepo > /dev/null 2>&1
echo
echo "% Specify base and dest (from 3 onto 6)"
hg rebase --base 4 --dest 6 2>&1 | sed 's/\(saving bundle to \).*/\1/'

exit 0