view tests/test-rebase-detach @ 10505:b3311e26f94f stable

merge: fix --preview to show all nodes that will be merged (issue2043). Formerly, it omitted nodes that were not descendants of the least common ancestor of the two merge parents, even though those nodes contribute to the merge. The new algorithm uses revlog.findmissing() instead of ancestor() + nodesbetween().
author Greg Ward <greg-hg@gerg.ca>
date Mon, 15 Feb 2010 15:25:29 -0500
parents 66d954e76ffb
children b345b1cc124f
line wrap: on
line source

#!/bin/sh

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

BASE=`pwd`

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

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

createrepo () {
    cd $BASE
    rm -rf a
    hg init a
    cd a
    addcommit "A" 0
    addcommit "B" 1
    addcommit "C" 2
    addcommit "D" 3

    hg update -C 0
    addcommit "E" 4
}

createrepo > /dev/null 2>&1
hg glog  --template '{rev}: {desc}\n'
echo '% Rebasing D onto E detaching from C'
hg rebase --detach -s 3 -d 4 2>&1 | sed 's/\(saving bundle to \).*/\1/'
hg glog  --template '{rev}: {desc}\n'
echo "Expected A, D, E"
hg manifest

echo
createrepo > /dev/null 2>&1
hg glog  --template '{rev}: {desc}\n'
echo '% Rebasing C onto E detaching from B'
hg rebase --detach -s 2 -d 4 2>&1 | sed 's/\(saving bundle to \).*/\1/'
hg glog  --template '{rev}: {desc}\n'
echo "Expected A, C, D, E"
hg manifest

echo
createrepo > /dev/null 2>&1
hg glog  --template '{rev}: {desc}\n'
echo '% Rebasing B onto E using detach (same as not using it)'
hg rebase --detach -s 1 -d 4 2>&1 | sed 's/\(saving bundle to \).*/\1/'
hg glog  --template '{rev}: {desc}\n'
echo "Expected A, B, C, D, E"
hg manifest

echo
createrepo > /dev/null 2>&1
hg glog  --template '{rev}: {desc}\n'
echo '% Rebasing C onto E detaching from B and collapsing'
hg rebase --detach --collapse -s 2 -d 4 2>&1 | sed 's/\(saving bundle to \).*/\1/'
hg glog  --template '{rev}: {desc}\n'
echo "Expected A, C, D, E"
hg manifest

exit 0