Mercurial > hg
view tests/test-rebase-collapse @ 11999:62e2bbf523f2
revlog: generate full revisions when parent node is missing
The full revision is sent if the first parent, against which diff is calculated, is
missing at remote. This happens in the case of shallow clones.
author | Vishakh H <vsh426@gmail.com> |
---|---|
date | Fri, 13 Aug 2010 19:41:51 +0530 |
parents | 2313dc4d9817 |
children |
line wrap: on
line source
#!/bin/sh . $TESTDIR/helpers.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 hg update -C 0 addcommit "F" 5 hg merge -r 4 commit "G" 6 hg update -C 5 addcommit "H" 7 } createrepo > /dev/null 2>&1 hg glog --template '{rev}: {desc}\n' echo '% Rebasing B onto H' hg up -C 3 hg rebase --collapse --keepbranches | hidebackup hg glog --template '{rev}: {desc}\n' echo "Expected A, B, C, D, F, H" hg manifest createrepo > /dev/null 2>&1 echo echo '% Rebasing G onto H' hg rebase --base 6 --collapse | hidebackup hg glog --template '{rev}: {desc}\n' echo "Expected A, E, F, H" hg manifest createrepocomplex () { cd $BASE rm -rf a hg init a cd a addcommit "A" 0 addcommit "B" 1 hg up 0 addcommit "C" 2 hg merge commit "D" 3 hg up 1 addcommit "E" 4 addcommit "F" 5 hg merge commit "G" 6 hg up 0 addcommit "H" 7 } echo createrepocomplex > /dev/null 2>&1 hg glog --template '{rev}: {desc}\n' echo echo '% Rebase and collapse - more than one external (fail)' hg rebase -s 2 --collapse echo echo '% Rebase and collapse - E onto H' hg rebase -s 4 --collapse | hidebackup hg glog --template '{rev}: {desc}\n' echo "Expected A, B, C, E, F, H" hg manifest createrepocomplex () { cd $BASE rm -rf a hg init a cd a addcommit "A" 0 addcommit "B" 1 hg up 0 addcommit "C" 2 hg merge commit "D" 3 hg up 1 addcommit "E" 4 echo "F" > E commit "F" 5 addcommit "G" 6 hg merge commit "H" 7 hg up 0 addcommit "I" 8 } echo createrepocomplex > /dev/null 2>&1 hg glog --template '{rev}: {desc}\n' echo echo '% Rebase and collapse - E onto I' hg rebase -s 4 --collapse | hidebackup hg glog --template '{rev}: {desc}\n' echo "Expected A, B, C, E, G, I" hg manifest echo 'Cat E:' cat E createrepocomplex () { cd $BASE rm -rf a hg init a cd a addcommit "A" 0 addcommit "B" 1 addcommit "C" 2 hg up 1 addcommit "D" 3 hg merge commit "E" 4 hg up 0 addcommit "F" 5 } echo createrepocomplex > /dev/null 2>&1 hg glog --template '{rev}: {desc}\n' echo echo '% Rebase and collapse - B onto F' hg rebase -s 1 --collapse | hidebackup hg glog --template '{rev}: {desc}\n' echo "Expected A, B, C, D, F" hg manifest exit 0