workingctx: correctly compute the flag for noexec filesystems+merge
This bug happens if the filesystem doesn't support exec-bit, during merges,
for example in 24ed7a541f23 on the hg repo.
If f is not in p1, but is in p2 and has the x-bit in p2, since the dirstate is
based on p1, and the FS doesn't support the exec-bit, the dirstate can't
"guess" the right bit.
We instead fix it in workingcontext.flags()/manifest.
#!/bin/sh
hg init repo
cd repo
i=0; while [ "$i" -lt 213 ]; do echo a >> a; i=`expr $i + 1`; done
hg add a
echo '% wide diffstat'
hg diff --stat
echo '% diffstat width'
COLUMNS=24 hg diff --config ui.interactive=true --stat
hg ci -m adda
cat >> a <<EOF
a
a
a
EOF
echo '% narrow diffstat'
hg diff --stat
hg ci -m appenda
printf '\0' > b
hg add b
echo '% binary diffstat'
hg diff --stat
echo '% binary git diffstat'
hg diff --stat --git