Mercurial > hg
diff hgext/lfs/__init__.py @ 37138:4d63f3bc1e1a
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.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 26 Mar 2018 22:18:36 -0400 |
parents | ecac0006b90e |
children | a2566597acb5 |
line wrap: on
line diff
--- a/hgext/lfs/__init__.py Tue Mar 20 18:02:16 2018 -0700 +++ b/hgext/lfs/__init__.py Mon Mar 26 22:18:36 2018 -0400 @@ -226,9 +226,11 @@ s = repo.set('%n:%n', _bin(kwargs[r'node']), _bin(last)) else: s = repo.set('%n', _bin(kwargs[r'node'])) + match = repo.narrowmatch() for ctx in s: # TODO: is there a way to just walk the files in the commit? - if any(ctx[f].islfs() for f in ctx.files() if f in ctx): + if any(ctx[f].islfs() for f in ctx.files() + if f in ctx and match(f)): repo.requirements.add('lfs') repo._writerequirements() repo.prepushoutgoinghooks.add('lfs', wrapper.prepush)