Fix 3-way-merge of original parent, workdir and new parent.
The dirstate has to match what is in the repository (what would be
checked out with 'hg update -C'), because the resulting file may be
identical to the new parent, or it may be completely different.
Previously the dirstate wasn't updated, so if you changed the file to
look like the original parent, it might be considered unmodified
relative to the new parent.
#!/bin/sh -e
umask 027
mkdir test1
cd test1
hg init
touch a b
hg add a b
hg ci -m "added a b" -d "0 0"
cd ..
mkdir test2
cd test2
hg init
hg pull ../test1
hg co
chmod +x a
hg ci -m "chmod +x a" -d "0 0"
cd ../test1
echo 123 >>a
hg ci -m "a updated" -d "0 0"
hg pull ../test2
hg heads
hg history
hg -v co -m
ls -l ../test[12]/a > foo
cut -b 0-10 < foo