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.
#!/bin/sh
hg init
echo a > a
hg commit -A -ma
echo b >> a
hg commit -mb
echo c >> a
hg commit -mc
hg up 1
echo d >> a
hg commit -md
hg up 1
echo e >> a
hg commit -me
hg up 1
echo % should fail because not at a head
hg merge
hg up
echo % should fail because \> 2 heads
export HGMERGE=internal:other
hg merge
echo % should succeed
hg merge 2
hg commit -mm1
echo % should succeed - 2 heads
hg merge -P
hg merge
hg commit -mm2
echo % should fail because at tip
hg merge
hg up 0
echo % should fail because 1 head
hg merge
hg up 3
echo f >> a
hg branch foobranch
hg commit -mf
echo % should fail because merge with other branch
hg merge
# Test for issue2043: ensure that 'merge -P' shows ancestors of 6 that
# are not ancestors of 7, regardless of where their least common
# ancestor is.
echo % merge preview not affected by common ancestor
hg up -q 7
hg merge -q -P 6 # expect: 2, 4, 5, 6
true