Fix copies reporting in log and convert.
If copy logged in file revision, we report copy for changeset only
if file revisions linkrev points back to the changeset in question
or both changeset parents contain different file revisions.
This fixes extra copies reported when executable bit was changed for
previously copied file.
#!/bin/sh
cat > echo.py <<EOF
#!/usr/bin/env python
import os
for k in ('HG_FILE', 'HG_MY_ISLINK', 'HG_OTHER_ISLINK', 'HG_BASE_ISLINK'):
print k, os.environ[k]
EOF
# Create 2 heads containing the same file, once as
# a file, once as a link. Bundle was generated with:
#
# hg init t
# cd t
# echo a > a
# hg ci -qAm t0 -d '0 0'
# echo l > l
# hg ci -qAm t1 -d '1 0'
# hg up -C 0
# ln -s a l
# hg ci -qAm t2 -d '2 0'
# echo l2 > l2
# hg ci -qAm t3 -d '3 0'
hg init t
cd t
hg -q pull "$TESTDIR/test-merge-symlinks.hg"
hg up -C 3
# Merge them and display *_ISLINK vars
echo % merge heads
HGMERGE="python ../echo.py" hg merge
# Test working directory symlink bit calculation wrt copies,
# especially on non-supporting systems.
echo % merge working directory
hg up -C 2
hg copy l l2
HGMERGE="python ../echo.py" hg up 3