view tests/test-qrecord @ 10135:9a4034b630c4 stable

patch: better handling of sequence of offset patch hunks (issue1941) The built-in patch implementation applied the hunks to the wrong lines of the file if the file in the repo has been modified to skew the patch line numbers and the file contains repetitive sequences of lines.
author Greg Onufer <gonufer@jazzhaiku.com>
date Wed, 09 Dec 2009 16:56:00 -0800
parents 6c82beaaa11a
children
line wrap: on
line source

#!/bin/sh

echo "[ui]" >> $HGRCPATH
echo "interactive=true" >> $HGRCPATH
echo "[extensions]"     >> $HGRCPATH
echo "record="          >> $HGRCPATH

echo "% help (no mq, so no qrecord)"

hg help qrecord

echo "mq="              >> $HGRCPATH

echo "% help (mq present)"

hg help qrecord

hg init a
cd a

echo % base commit

cat > 1.txt <<EOF
1
2
3
4
5
EOF
cat > 2.txt <<EOF
a
b
c
d
e
f
EOF
mkdir dir
cat > dir/a.txt <<EOF
hello world

someone
up
there
loves
me
EOF

hg add 1.txt 2.txt dir/a.txt
hg commit -m 'initial checkin'

echo % changing files

sed -e 's/2/2 2/;s/4/4 4/' 1.txt > 1.txt.new
sed -e 's/b/b b/' 2.txt > 2.txt.new
sed -e 's/hello world/hello world!/' dir/a.txt > dir/a.txt.new

mv -f 1.txt.new 1.txt
mv -f 2.txt.new 2.txt
mv -f dir/a.txt.new dir/a.txt

echo % whole diff

hg diff --nodates

echo % qrecord a.patch

hg qrecord -d '0 0' -m aaa a.patch <<EOF
y
y
n
y
y
n
EOF

echo
echo % "after qrecord a.patch 'tip'"
hg tip -p
echo
echo % "after qrecord a.patch 'diff'"
hg diff --nodates

echo % qrecord b.patch
hg qrecord -d '0 0' -m bbb b.patch <<EOF
y
y
y
y
EOF

echo
echo % "after qrecord b.patch 'tip'"
hg tip -p
echo
echo % "after qrecord b.patch 'diff'"
hg diff --nodates

echo
echo % --- end ---