lfs: respect narrowmatcher when testing to add 'lfs' requirement (issue5794)
There's a similar test in lfs.wrapper.convertsink(), but I didn't update that
because I don't think that the sink repo in a convert can be narrow.
It seems reasonable that a narrow clone of an LFS repo may not necessarily be an
LFS repo. The only potential issue is that LFS has a hard requirement for
changegroup v3, which that extension enables. The use of treemanifest will
enable changegroup v3 in narrow clones, because allsupportedversions() in
changegroup.py preserves it when it sees a 'treemanifest' requirement. But I
don't see where changegroup v3 is enabled for a flat manifest.
#require execbit
$ hg init
$ echo a > a
$ hg ci -Am'not executable'
adding a
$ chmod +x a
$ hg ci -m'executable'
$ hg id
79abf14474dc tip
Make sure we notice the change of mode if the cached size == -1:
$ hg rm a
$ hg revert -r 0 a
$ hg debugstate
n 0 -1 unset a
$ hg status
M a
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id
d69afc33ff8a
$ test -x a && echo executable -- bad || echo not executable -- good
not executable -- good