narrowcopies.py
35 lines
| 1.1 KiB
| text/x-python
|
PythonLexer
Augie Fackler
|
r36096 | # 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) | ||||