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 "hgext.convert=" >> $HGRCPATH
hg init orig
cd orig
echo foo > foo
echo bar > bar
hg ci -qAm 'add foo and bar' -d '0 0'
hg rm foo
hg ci -m 'remove foo' -d '0 0'
mkdir foo
echo file > foo/file
hg ci -qAm 'add foo/file' -d '0 0'
hg tag -d '0 0' some-tag
hg log
cd ..
hg convert orig new 2>&1 | grep -v 'subversion python bindings could not be loaded'
cd new
hg out ../orig
echo '% dirstate should be empty:'
hg debugstate
hg parents -q
hg up -C
hg copy bar baz
echo '% put something in the dirstate:'
hg debugstate > debugstate
grep baz debugstate
echo '% add a new revision in the original repo'
cd ../orig
echo baz > baz
hg ci -qAm 'add baz'
cd ..
hg convert orig new 2>&1 | grep -v 'subversion python bindings could not be loaded'
cd new
hg out ../orig
echo '% dirstate should be the same (no output below):'
hg debugstate > new-debugstate
diff debugstate new-debugstate
echo '% no copies'
hg up -C
hg debugrename baz