##// END OF EJS Templates
prepush: add more precise error messages...
prepush: add more precise error messages Part of the patch is from timeless@mozdev.org - indicate the branch name where there are multiple heads - give better advice when hitting a possible race, where new heads are added between discovery and the call to branchmap(). In that case, asking the user to merge isn't helpful, since only remote has the changes.

File last commit:

r8168:8766fee6 default
r10396:65a90c8e default
Show More
test-rebase-mq
112 lines | 2.2 KiB | text/plain | TextLexer
Stefano Tortarolo
Add rebase extension
r6906 #!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "graphlog=" >> $HGRCPATH
echo "rebase=" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
Patrick Mezard
test-rebase-mq: '|' is a GNU sed extension, unfold it
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 /" \
Stefano Tortarolo
rebase: keep original mq patch format (Issue1574)...
r7955 -e "s/^\(diff -r \)\([a-f0-9]* \)/\1x /" \
Patrick Mezard
test-rebase-mq: '|' is a GNU sed extension, unfold it
r6931 -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" \
-e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/"
}
Stefano Tortarolo
Add rebase extension
r6906 hg init a
cd a
hg qinit -c # This must work even with a managed mq queue
echo 'c1' > f
hg add f
Martin Geisler
tests: removed redundant "-u test" from test scripts...
r8168 hg commit -d '0 0' -m "C1"
Stefano Tortarolo
Add rebase extension
r6906
echo 'r1' > f
Martin Geisler
tests: removed redundant "-u test" from test scripts...
r8168 hg commit -d '2 0' -m "R1"
Stefano Tortarolo
Add rebase extension
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
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 2>&1 | sed -e 's/\(saving bundle to \).*/\1/'
echo
echo '% Fix the 2nd conflict'
echo 'mq1r1mq2' > f
hg resolve -m f
hg rebase -c 2>&1 | sed -e 's/\(saving bundle to \).*/\1/'
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'
Patrick Mezard
test-rebase-mq: '|' is a GNU sed extension, unfold it
r6931 cat .hg/patches/f.patch | filterpatch
Stefano Tortarolo
Add rebase extension
r6906
echo
echo '% Update to qtip'
hg up qtip
echo '% f correctly reflects the merge result'
cat f
echo '% And the patch is correct'
Patrick Mezard
test-rebase-mq: '|' is a GNU sed extension, unfold it
r6931 cat .hg/patches/f2.patch | filterpatch
Stefano Tortarolo
rebase: keep original mq patch format (Issue1574)...
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'
hg rebase -s 2 -d 1 --quiet 2>&1 | sed -e 's/\(saving bundle to \).*/\1/'
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