##// END OF EJS Templates
Issue919: add a standard extension to recreate hardlinks between repositories....
Issue919: add a standard extension to recreate hardlinks between repositories. Having to run a standalone Python script from the contrib dir is a nuisance. Also makes various improvements to locking, file discovery, etc. Should also update: http://www.selenic.com/mercurial/wiki/index.cgi/RecreateHardlinksBetweenRepositories

File last commit:

r8168:8766fee6 default
r9729:aa9ccab5 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