test-rebase-mq
123 lines
| 2.3 KiB
| text/plain
|
TextLexer
/ tests / test-rebase-mq
|
r6906 | #!/bin/sh | ||
|
r11198 | source $TESTDIR/helpers.sh | ||
|
r6906 | echo "[extensions]" >> $HGRCPATH | ||
echo "graphlog=" >> $HGRCPATH | ||||
echo "rebase=" >> $HGRCPATH | ||||
echo "mq=" >> $HGRCPATH | ||||
|
r10397 | echo "[mq]" >> $HGRCPATH | ||
echo "plain=true" >> $HGRCPATH | ||||
|
r6931 | filterpatch() | ||
{ | ||||
sed -e "s/^\(# Date\).*/\1/" \ | ||||
-e "s/^\(# Node ID\).*/\1/" \ | ||||
-e "s/^\(# Parent\).*/\1/" \ | ||||
-e "s/^\(diff -r \)\([a-f0-9]* \)\(-r \)\([a-f0-9]* \)/\1x \3y /" \ | ||||
|
r7955 | -e "s/^\(diff -r \)\([a-f0-9]* \)/\1x /" \ | ||
|
r6931 | -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" \ | ||
-e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" | ||||
} | ||||
|
r6906 | hg init a | ||
cd a | ||||
hg qinit -c # This must work even with a managed mq queue | ||||
echo 'c1' > f | ||||
hg add f | ||||
|
r8168 | hg commit -d '0 0' -m "C1" | ||
|
r6906 | |||
echo 'r1' > f | ||||
|
r8168 | hg commit -d '2 0' -m "R1" | ||
|
r6906 | |||
hg up 0 | ||||
hg qnew f.patch | ||||
echo 'mq1' > f | ||||
hg qref -m 'P0' | ||||
hg qnew f2.patch | ||||
echo 'mq2' > f | ||||
hg qref -m 'P1' | ||||
hg glog --template '{rev} {desc} tags: {tags}\n' | ||||
echo | ||||
echo '% Rebase - try to rebase on an applied mq patch' | ||||
hg rebase -s 1 -d 3 | ||||
echo | ||||
|
r10672 | echo '% Rebase - same thing, but mq patch is default dest' | ||
hg update -q 1 | ||||
hg rebase | ||||
hg update -q qtip | ||||
echo | ||||
|
r6906 | echo '% Rebase - generate a conflict' | ||
hg rebase -s 2 -d 1 | ||||
echo | ||||
echo '% Fix the 1st conflict' | ||||
echo 'mq1r1' > f | ||||
hg resolve -m f | ||||
|
r11198 | hg rebase -c | hidebackup | ||
|
r6906 | |||
echo | ||||
echo '% Fix the 2nd conflict' | ||||
echo 'mq1r1mq2' > f | ||||
hg resolve -m f | ||||
|
r11198 | hg rebase -c | hidebackup | ||
|
r6906 | |||
hg glog --template '{rev} {desc} tags: {tags}\n' | ||||
echo | ||||
echo '% Update to qbase' | ||||
hg up qbase | ||||
echo '% f correctly reflects the merge result' | ||||
cat f | ||||
echo '% And the patch is correct' | ||||
|
r6931 | cat .hg/patches/f.patch | filterpatch | ||
|
r6906 | |||
echo | ||||
echo '% Update to qtip' | ||||
hg up qtip | ||||
echo '% f correctly reflects the merge result' | ||||
cat f | ||||
echo '% And the patch is correct' | ||||
|
r6931 | cat .hg/patches/f2.patch | filterpatch | ||
|
r7955 | echo | ||
echo '% Adding one git-style patch and one normal' | ||||
hg qpop -a | ||||
rm -fr .hg/patches | ||||
hg qinit -c | ||||
hg up 0 | ||||
hg qnew --git f_git.patch | ||||
echo 'mq1' > p | ||||
hg add p | ||||
hg qref --git -m 'P0 (git)' | ||||
hg qnew f.patch | ||||
echo 'mq2' > p | ||||
hg qref -m 'P1' | ||||
echo '% Git patch' | ||||
cat .hg/patches/f_git.patch | filterpatch | ||||
echo | ||||
echo '% Normal patch' | ||||
cat .hg/patches/f.patch | filterpatch | ||||
echo | ||||
echo '% Rebase the applied mq patches' | ||||
|
r11198 | hg rebase -s 2 -d 1 --quiet | ||
|
r7955 | |||
echo '% And the patches are correct' | ||||
echo '% Git patch' | ||||
cat .hg/patches/f_git.patch | filterpatch | ||||
echo | ||||
echo '% Normal patch' | ||||
cat .hg/patches/f.patch | filterpatch | ||||