##// END OF EJS Templates
Add patch.eol to ignore EOLs when patching (issue1019)...
Add patch.eol to ignore EOLs when patching (issue1019) The intent is to fix many issues involving patching when win32ext is enabled. With win32ext, the working directory and repository files EOLs are not the same which means that patches made on a non-win32ext host do not apply cleanly because of EOLs discrepancies. A theorically correct approach would be transform either the patched file or the patch content with the encoding/decoding filters used by win32ext. This solution is tricky to implement and invasive, instead we prefer to address the win32ext case, by offering a way to ignore input EOLs when patching and rewriting them when saving the patched result.

File last commit:

r7718:6fa7b6fb default
r8810:ac92775b default
Show More
test-record
298 lines | 3.5 KiB | text/plain | TextLexer
#!/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
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