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.
created new head
changeset: 1:d9da848d0adf
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: cp foo bar; change both
searching for copies back to rev 1
unmatched files in other:
bar
all copies found (* = to merge, ! = divergent):
bar -> foo *
checking for directory renames
resolving manifests
overwrite None partial False
ancestor 310fd17130da local 2092631ce82b+ remote d9da848d0adf
foo: versions differ -> m
foo: remote copied to bar -> m
preserving foo for resolve of bar
preserving foo for resolve of foo
update: foo 1/2 files (50.00%)
picked tool 'internal:merge' for bar (binary False symlink False)
merging foo and bar to bar
my bar@2092631ce82b+ other bar@d9da848d0adf ancestor foo@310fd17130da
premerge successful
update: foo 2/2 files (100.00%)
picked tool 'internal:merge' for foo (binary False symlink False)
merging foo
my foo@2092631ce82b+ other foo@d9da848d0adf ancestor foo@310fd17130da
premerge successful
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
-- foo --
line 0
line 1
line 2-1
-- bar --
line 0
line 1
line 2-2