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.
% basic
% unknown
alias 'unknown' resolves to unknown command 'bargle'
alias 'unknown' resolves to unknown command 'bargle'
% ambiguous
alias 'ambiguous' resolves to ambiguous command 's'
alias 'ambiguous' resolves to ambiguous command 's'
% recursive
alias 'recursive' resolves to unknown command 'recursive'
alias 'recursive' resolves to unknown command 'recursive'
% no definition
no definition for alias 'nodefinition'
no definition for alias 'nodefinition'
% no usage
no rollback information available
adding foo
% with opts
C foo
% with opts and whitespace
0 e63c23eaa88a | 1970-01-01 00:00 +0000
% interaction with defaults
0:e63c23eaa88a
-1:000000000000
% properly recursive
changeset: -1:0000000000000000000000000000000000000000
parent: -1:0000000000000000000000000000000000000000
parent: -1:0000000000000000000000000000000000000000
manifest: -1:0000000000000000000000000000000000000000
user:
date: Thu Jan 01 00:00:00 1970 +0000
extra: branch=default
% path expanding
# HG changeset patch
# User test
# Date 0 0
# Node ID e63c23eaa88ae77967edcf4ea194d31167c478b0
# Parent 0000000000000000000000000000000000000000
foo
diff -r 000000000000 -r e63c23eaa88a foo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/foo Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+foo