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.
#!/bin/sh
"$TESTDIR/hghave" symlink || exit 80
hg init a
cd a
ln -s nothing dangling
hg commit -m 'commit symlink without adding' dangling
hg add dangling
hg commit -m 'add symlink'
hg tip -v
hg manifest --debug
echo '% rev 0:'
$TESTDIR/readlink.py dangling
rm dangling
ln -s void dangling
hg commit -m 'change symlink'
echo '% rev 1:'
$TESTDIR/readlink.py dangling
echo '% modifying link'
rm dangling
ln -s empty dangling
$TESTDIR/readlink.py dangling
echo '% reverting to rev 0:'
hg revert -r 0 -a
$TESTDIR/readlink.py dangling
echo '% backups:'
$TESTDIR/readlink.py *.orig
rm *.orig
hg up -C
echo '% copies'
hg cp -v dangling dangling2
hg st -Cmard
$TESTDIR/readlink.py dangling dangling2
echo '% issue995'
hg up -C
mkdir dir
ln -s dir dirlink
hg ci -qAm 'add dirlink'
mkdir newdir
mv dir newdir/dir
mv dirlink newdir/dirlink
hg mv -A dirlink newdir/dirlink