Mercurial > hg
view hgext/narrow/narrowcopies.py @ 36209:2ad527f7d27a
narrow: restrict manifest iteration by using manifest.walk(matcher)
This is only for root nodes, so it shouldn't really matter (they're
rarely huge), but seems cleaner.
Differential Revision: https://phab.mercurial-scm.org/D2234
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Tue, 13 Feb 2018 13:50:24 -0800 |
parents | a2a6e724d61a |
children | f85e32a5e5c8 |
line wrap: on
line source
# narrowcopies.py - extensions to mercurial copies module to support narrow # clones # # Copyright 2017 Google, Inc. # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import absolute_import from mercurial import ( copies, extensions, util, ) def setup(repo): def _computeforwardmissing(orig, a, b, match=None): missing = orig(a, b, match) if util.safehasattr(repo, 'narrowmatch'): narrowmatch = repo.narrowmatch() missing = filter(narrowmatch, missing) return missing def _checkcopies(orig, srcctx, dstctx, f, base, tca, remotebase, limit, data): if util.safehasattr(repo, 'narrowmatch'): narrowmatch = repo.narrowmatch() if not narrowmatch(f): return orig(srcctx, dstctx, f, base, tca, remotebase, limit, data) extensions.wrapfunction(copies, '_computeforwardmissing', _computeforwardmissing) extensions.wrapfunction(copies, '_checkcopies', _checkcopies)