##// END OF EJS Templates
py3: use print as a function in tests/test-hgrc.t...
py3: use print as a function in tests/test-hgrc.t print was made a function in Python 3. Differential Revision: https://phab.mercurial-scm.org/D2480

File last commit:

r36363:f85e32a5 default
r36478:432b85a4 default
Show More
narrowpatch.py
42 lines | 1.5 KiB | text/x-python | PythonLexer
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 # 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()
Augie Fackler
narrow: use list comprehension instead of filter for filtering lists...
r36363 modified = [f for f in modified if narrowmatch(f)]
added = [f for f in added if narrowmatch(f)]
removed = [f for f in removed if narrowmatch(f)]
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 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)