##// END OF EJS Templates
Do not use osutil.c with python 2.4 and Windows (issue1364)...
Do not use osutil.c with python 2.4 and Windows (issue1364) Windows python 2.4 os.stat() reports times including DST offset, while osutil.c reports the correct value, which makes status() systematically compare files content. This bug is fixed in python 2.5. Using osutil.py instead of osutil.c is 4x times slower on large repositories but current code is completely unusable. Given few people are likely to use python 2.4 on Windows this solution was considered a good trade-off compared to more invasive solutions trying to address the offset issue.

File last commit:

r10397:8cb81d75 default
r10521:bde1bb25 stable
Show More
test-rebase-mq
115 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
Steve Losh
mq: add parent node IDs to MQ patches on qrefresh/qnew...
r10397 echo "[mq]" >> $HGRCPATH
echo "plain=true" >> $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