view tests/test-record @ 6179:36ab165abbe2

patch: fix iterhunks() with trailing binary file removal Like some renames or copy operations, binary file removal does not generate any "file" or "hunk" action, but was not tagged as such and let iterhunk() assume no hunk was applied for the deleted file.
author Patrick Mezard <pmezard@gmail.com>
date Thu, 28 Feb 2008 00:07:37 +0100
parents 67afecb8d6cc
children 6fa7b6fb90a9
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 % 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