narrowcopies.py
34 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, | ||||
) | ||||
def setup(repo): | ||||
def _computeforwardmissing(orig, a, b, match=None): | ||||
missing = orig(a, b, match) | ||||
Martin von Zweigbergk
|
r36490 | narrowmatch = repo.narrowmatch() | ||
if narrowmatch.always(): | ||||
return missing | ||||
missing = [f for f in missing if narrowmatch(f)] | ||||
Augie Fackler
|
r36096 | return missing | ||
def _checkcopies(orig, srcctx, dstctx, f, base, tca, remotebase, limit, | ||||
data): | ||||
Martin von Zweigbergk
|
r36490 | narrowmatch = repo.narrowmatch() | ||
if not narrowmatch(f): | ||||
return | ||||
Augie Fackler
|
r36096 | orig(srcctx, dstctx, f, base, tca, remotebase, limit, data) | ||
extensions.wrapfunction(copies, '_computeforwardmissing', | ||||
_computeforwardmissing) | ||||
extensions.wrapfunction(copies, '_checkcopies', _checkcopies) | ||||