Mercurial > hg
view hgext/narrow/narrowpatch.py @ 36170:28830ba50687
histedit: fix silly bug that was unpacking a bytestr before writing it
I have this foggy notion that popbuffer() might have returned a list
in the past, but it doesn't anymore, and this was breaking on Python
3. As a bonus, it's probably a ton faster on Python 2 now.
Differential Revision: https://phab.mercurial-scm.org/D2243
author | Augie Fackler <augie@google.com> |
---|---|
date | Tue, 13 Feb 2018 18:25:05 -0500 |
parents | a2a6e724d61a |
children | f85e32a5e5c8 |
line wrap: on
line source
# narrowpatch.py - extensions to mercurial patch 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 ( extensions, patch, util, ) def setup(repo): def _filepairs(orig, *args): """Only includes files within the narrow spec in the diff.""" if util.safehasattr(repo, 'narrowmatch'): narrowmatch = repo.narrowmatch() for x in orig(*args): f1, f2, copyop = x if ((not f1 or narrowmatch(f1)) and (not f2 or narrowmatch(f2))): yield x else: for x in orig(*args): yield x def trydiff(orig, repo, revs, ctx1, ctx2, modified, added, removed, copy, getfilectx, *args, **kwargs): if util.safehasattr(repo, 'narrowmatch'): narrowmatch = repo.narrowmatch() modified = filter(narrowmatch, modified) added = filter(narrowmatch, added) removed = filter(narrowmatch, removed) copy = {k: v for k, v in copy.iteritems() if narrowmatch(k)} return orig(repo, revs, ctx1, ctx2, modified, added, removed, copy, getfilectx, *args, **kwargs) extensions.wrapfunction(patch, '_filepairs', _filepairs) extensions.wrapfunction(patch, 'trydiff', trydiff)