##// END OF EJS Templates
tests: remove unneeded -d flags...
tests: remove unneeded -d flags Many tests fixed the commit date of their changesets at '1000000 0' or similar. However testing with "Mon Jan 12 13:46:40 1970 +0000" is not better than testing with "Thu Jan 01 00:00:00 1970 +0000", which is the default run-tests.py installs. Removing the unnecessary flag removes some clutter and will hopefully make it clearer what the tests are really trying to test. Some tests did not even change their output when the dates were changed, in which case the -d flag was truly irrelevant. Dates used in sequence (such as '0 0', '1 0', etc...) were left alone since they may make the test easier to understand.

File last commit:

r11536:92342fa9 stable
r12156:4c94b6d0 default
Show More
test-rebase-mq
133 lines | 2.5 KiB | text/plain | TextLexer
#!/bin/sh
. $TESTDIR/helpers.sh
echo "[extensions]" >> $HGRCPATH
echo "graphlog=" >> $HGRCPATH
echo "rebase=" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
echo "[mq]" >> $HGRCPATH
echo "plain=true" >> $HGRCPATH
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 /" \
-e "s/^\(diff -r \)\([a-f0-9]* \)/\1x /" \
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" \
-e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/"
}
hg init a
cd a
hg qinit -c # This must work even with a managed mq queue
echo 'c1' > f
hg add f
hg commit -d '0 0' -m "C1"
echo 'r1' > f
hg commit -d '2 0' -m "R1"
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
echo '% Rebase - same thing, but mq patch is default dest'
hg update -q 1
hg rebase
hg update -q qtip
echo
echo '% Rebase - generate a conflict'
hg rebase -s 2 -d 1
echo
echo '% Fix the 1st conflict'
echo 'mq1r1' > f
hg resolve -m f
hg rebase -c | hidebackup
echo
echo '% Fix the 2nd conflict'
echo 'mq1r1mq2' > f
hg resolve -m f
hg rebase -c | hidebackup
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'
cat .hg/patches/f.patch | filterpatch
echo
echo '% Update to qtip'
hg up qtip
echo '% f correctly reflects the merge result'
cat f
echo '% And the patch is correct'
cat .hg/patches/f2.patch | filterpatch
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'
hg qcommit -m 'save patch state'
echo '% patch series step 1/2'
hg qseries -s
echo '% patch queue manifest step 1/2'
hg -R .hg/patches manifest
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'
hg rebase -s 2 -d 1 --quiet
hg qcommit -m 'save patch state'
echo '% patch series step 2/2'
hg qseries -s
echo '% patch queue manifest step 2/2'
hg -R .hg/patches manifest
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