##// END OF EJS Templates
Do not use osutil.c with python 2.4 and Windows (issue1364)...
Do not use osutil.c with python 2.4 and Windows (issue1364) Windows python 2.4 os.stat() reports times including DST offset, while osutil.c reports the correct value, which makes status() systematically compare files content. This bug is fixed in python 2.5. Using osutil.py instead of osutil.c is 4x times slower on large repositories but current code is completely unusable. Given few people are likely to use python 2.4 on Windows this solution was considered a good trade-off compared to more invasive solutions trying to address the offset issue.

File last commit:

r10218:750b7a4f stable
r10521:bde1bb25 stable
Show More
test-relink
54 lines | 1.2 KiB | text/plain | TextLexer
#!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "relink=" >> $HGRCPATH
fix_path()
{
tr '\\' /
}
cat > arelinked.py <<EOF
import sys, os
from mercurial import util
path1, path2 = sys.argv[1:3]
if util.samefile(path1, path2):
print '%s == %s' % (path1, path2)
else:
print '%s != %s' % (path1, path2)
EOF
echo '% create source repository'
hg init repo
cd repo
echo '[ui]' > .hg/hgrc
echo 'username= A. Foo <a.foo@bar.com>' >> .hg/hgrc
echo a > a
echo b > b
hg ci -Am addfile
echo a >> a
echo a >> b
hg ci -Am changefiles
# Test files are read in binary mode
python -c "file('.hg/store/data/dummy.i', 'wb').write('a\r\nb\n')"
cd ..
echo '% clone and pull to break links'
hg clone --pull -r0 repo clone
cd clone
echo '[ui]' >> .hg/hgrc
echo 'username= A. Baz <a.baz@bar.com>' >> .hg/hgrc
hg pull -q
echo b >> b
hg ci -m changeb
python -c "file('.hg/store/data/dummy.i', 'wb').write('a\nb\r\n')"
echo '% relink'
hg relink --debug | sed 's:relinking.*store:relinking .hg/store:g' \
| fix_path
cd ..
echo '% check hardlinks'
python arelinked.py repo/.hg/store/data/a.i clone/.hg/store/data/a.i
python arelinked.py repo/.hg/store/data/b.i clone/.hg/store/data/b.i