Always copy the necessary files before applying a git patch
This patch removes the "copymod" attribute from the gitpatch
class.
AFAICS, that attribute was only used to delay the copying of
renamed/copied files if there are no other changes to the target,
but in this case, if there are changes to the source, we'll end
up copying the wrong version.
This should fix issue762.
#!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
cat >> readlink.py <<EOF
import errno, os, sys
for f in sys.argv[1:]:
try:
print f, '->', os.readlink(f)
except OSError, err:
if err.errno != errno.EINVAL: raise
print f, 'not a symlink'
EOF
hg init
hg qinit
hg qnew base.patch
echo a > a
echo b > b
hg add a b
hg qrefresh
python readlink.py a
hg qnew symlink.patch
rm a
ln -s b a
hg qrefresh --git
python readlink.py a
hg qpop
hg qpush
python readlink.py a