view tests/test-record @ 11715:4f9dfb54c8b5 stable

qpush --move: move the right patch even with comment lines 88fc876a4833 caused that we find the index of the moving patch in self.series but look it up in self.full_series. The difference between these is that full_series also contains comment lines, and we thus moved the wrong patch. Use back self.full_series to find the moving patch, but take care of striping the patch guard markers before comparing the patch name. Test cases have been added for comments and empty lines in self.full_series, and for the case of guarded patches. Original patch contributed by Mads Kiilerich <mads@kiilerich.com>
author Gilles Moris <gilles.moris@free.fr>
date Sat, 10 Jul 2010 21:23:00 +0200
parents a5922547b5cc
children
line wrap: on
line source

#!/bin/sh

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

echo % help

hg help record

hg init a
cd a

echo % select no files

touch empty-rw
hg add empty-rw
hg record empty-rw<<EOF
n
EOF
echo; hg tip -p

echo % select files but no hunks

hg record empty-rw<<EOF
y
n
EOF
echo; hg tip -p

echo % record empty file

hg record -d '0 0' -m empty empty-rw<<EOF
y
y
EOF
echo; hg tip -p

echo % summary shows we updated to the new cset
hg summary
echo

echo % rename empty file

hg mv empty-rw empty-rename
hg record -d '1 0' -m rename<<EOF
y
EOF
echo; hg tip -p

echo % copy empty file

hg cp empty-rename empty-copy
hg record -d '2 0' -m copy<<EOF
y
EOF
echo; hg tip -p

echo % delete empty file

hg rm empty-copy
hg record -d '3 0' -m delete<<EOF
y
EOF
echo; hg tip -p

echo % add binary file

hg bundle --base -2 tip.bundle
hg add tip.bundle
hg record -d '4 0' -m binary<<EOF
y
EOF
echo; hg tip -p

echo % change binary file

hg bundle --base -2 tip.bundle
hg record -d '5 0' -m binary-change<<EOF
y
EOF
echo; hg tip -p

echo % rename and change binary file

hg mv tip.bundle top.bundle
hg bundle --base -2 top.bundle
hg record -d '6 0' -m binary-change-rename<<EOF
y
EOF
echo; hg tip -p

echo % add plain file

for i in 1 2 3 4 5 6 7 8 9 10; do
    echo $i >> plain
done

hg add plain
hg record -d '7 0' -m plain plain<<EOF
y
y
EOF
echo; hg tip -p

echo % modify end of plain file

echo 11 >> plain
hg record -d '8 0' -m end plain <<EOF
y
y
EOF

echo % modify end of plain file, no EOL

hg tip --template '{node}' >> plain
hg record -d '9 0' -m noeol plain <<EOF
y
y
EOF

echo % modify end of plain file, add EOL

echo >> plain
hg record -d '10 0' -m eol plain <<EOF
y
y
y
EOF

echo % modify beginning, trim end, record both

rm plain
for i in 2 2 3 4 5 6 7 8 9 10; do
  echo $i >> plain
done

hg record -d '10 0' -m begin-and-end plain <<EOF
y
y
y
EOF
echo; hg tip -p

echo % trim beginning, modify end

rm plain
for i in 4 5 6 7 8 9 10.new; do
  echo $i >> plain
done

echo % record end

hg record -d '11 0' -m end-only plain <<EOF
y
n
y
EOF
echo; hg tip -p

echo % record beginning

hg record -d '12 0' -m begin-only plain <<EOF
y
y
EOF
echo; hg tip -p

echo % add to beginning, trim from end

rm plain
for i in 1 2 3 4 5 6 7 8 9; do
  echo $i >> plain
done

echo % record end

hg record --traceback -d '13 0' -m end-again plain<<EOF
y
n
y
EOF

echo % add to beginning, middle, end

rm plain
for i in 1 2 3 4 5 5.new 5.reallynew 6 7 8 9 10 11; do
  echo $i >> plain
done

echo % record beginning, middle

hg record -d '14 0' -m middle-only plain <<EOF
y
y
y
n
EOF
echo; hg tip -p

echo % record end

hg record -d '15 0' -m end-only plain <<EOF
y
y
EOF
echo; hg tip -p

mkdir subdir
cd subdir
echo a > a
hg ci -d '16 0' -Amsubdir

echo a >> a
hg record -d '16 0' -m subdir-change a <<EOF
y
y
EOF
echo; hg tip -p

echo a > f1
echo b > f2
hg add f1 f2

hg ci -mz -d '17 0'

echo a >> f1
echo b >> f2

echo % help, quit

hg record <<EOF
?
q
EOF

echo % skip

hg record <<EOF
s
EOF

echo % no

hg record <<EOF
n
EOF

echo % f, quit

hg record <<EOF
f
q
EOF

echo % s, all

hg record -d '18 0' -mx <<EOF
s
a
EOF
echo; hg tip -p

echo % f

hg record -d '19 0' -my <<EOF
f
EOF
echo; hg tip -p

echo % preserve chmod +x

chmod +x f1
echo a >> f1
hg record -d '20 0' -mz <<EOF
y
y
y
EOF
echo; hg tip --config diff.git=True -p

echo % preserve execute permission on original

echo b >> f1
hg record -d '21 0' -maa <<EOF
y
y
y
EOF
echo; hg tip --config diff.git=True -p

echo % preserve chmod -x

chmod -x f1
echo c >> f1
hg record -d '22 0' -mab <<EOF
y
y
y
EOF
echo; hg tip --config diff.git=True -p

cd ..

echo % abort early when a merge is in progress
hg up 4
touch iwillmergethat
hg add iwillmergethat
hg branch thatbranch
hg ci -m'new head'
hg up default
hg merge thatbranch
echo; hg record -m'will abort'
hg up -C

echo % with win32ext
echo '[extensions]' >> .hg/hgrc
echo 'win32text = ' >> .hg/hgrc
echo '[decode]' >> .hg/hgrc
echo '** = cleverdecode:' >> .hg/hgrc
echo '[encode]' >> .hg/hgrc
echo '** = cleverencode:' >> .hg/hgrc
echo '[patch]' >> .hg/hgrc
echo 'eol = crlf' >> .hg/hgrc

echo d >> subdir/f1
hg record -d '23 0' -mw1 <<EOF
y
y
EOF
echo; hg tip -p