Details
Details
Diff Detail
Diff Detail
- Repository
- rNRWHG narrowhg
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
Automatic diff as part of commit; lint not applicable. |
Automatic diff as part of commit; unit tests not applicable. |
'narrowhg requires mercurial 3.7 or newer') | 'narrowhg requires mercurial 3.7 or newer') | ||||
__version__ = '0.1' | __version__ = '0.1' | ||||
from mercurial import ( | from mercurial import ( | ||||
extensions, | extensions, | ||||
hg, | hg, | ||||
localrepo, | localrepo, | ||||
registrar, | |||||
util, | util, | ||||
verify as verifymod, | verify as verifymod, | ||||
) | ) | ||||
from . import ( | from . import ( | ||||
narrowbundle2, | narrowbundle2, | ||||
narrowchangegroup, | narrowchangegroup, | ||||
narrowcommands, | narrowcommands, | ||||
narrowcopies, | narrowcopies, | ||||
narrowdirstate, | narrowdirstate, | ||||
narrowmerge, | narrowmerge, | ||||
narrowpatch, | narrowpatch, | ||||
narrowrepo, | narrowrepo, | ||||
narrowrevlog, | narrowrevlog, | ||||
narrowtemplates, | narrowtemplates, | ||||
narrowwirepeer, | narrowwirepeer, | ||||
) | ) | ||||
configtable = {} | |||||
configitem = registrar.configitem(configtable) | |||||
configitem('narrow', 'serveellipses', | |||||
default=False, | |||||
) | |||||
# Export the commands table for Mercurial to see. | # Export the commands table for Mercurial to see. | ||||
cmdtable = narrowcommands.table | cmdtable = narrowcommands.table | ||||
localrepo.localrepository._basesupported.add(narrowrepo.requirement) | localrepo.localrepository._basesupported.add(narrowrepo.requirement) | ||||
def uisetup(ui): | def uisetup(ui): | ||||
"""Wraps user-facing mercurial commands with narrow-aware versions.""" | """Wraps user-facing mercurial commands with narrow-aware versions.""" | ||||
narrowrevlog.setup() | narrowrevlog.setup() |
version = getcgkwargs['version'] = max(cgversions) | version = getcgkwargs['version'] = max(cgversions) | ||||
else: | else: | ||||
raise ValueError(_("server does not advertise changegroup version," | raise ValueError(_("server does not advertise changegroup version," | ||||
" can't negotiate support for ellipsis nodes")) | " can't negotiate support for ellipsis nodes")) | ||||
include = sorted(filter(bool, kwargs.get('includepats', []))) | include = sorted(filter(bool, kwargs.get('includepats', []))) | ||||
exclude = sorted(filter(bool, kwargs.get('excludepats', []))) | exclude = sorted(filter(bool, kwargs.get('excludepats', []))) | ||||
newmatch = narrowspec.match(repo.root, include=include, exclude=exclude) | newmatch = narrowspec.match(repo.root, include=include, exclude=exclude) | ||||
if not repo.ui.configbool("narrow", "serveellipses", False): | if not repo.ui.configbool("narrow", "serveellipses"): | ||||
outgoing = exchange._computeoutgoing(repo, heads, common) | outgoing = exchange._computeoutgoing(repo, heads, common) | ||||
if not outgoing.missing: | if not outgoing.missing: | ||||
return | return | ||||
if util.safehasattr(changegroup, 'getsubsetraw'): | if util.safehasattr(changegroup, 'getsubsetraw'): | ||||
# getsubsetraw was replaced with makestream in hg in 92f1e2be8ab6 | # getsubsetraw was replaced with makestream in hg in 92f1e2be8ab6 | ||||
# (2017/09/10). | # (2017/09/10). | ||||
packer = changegroup.getbundler(version, repo) | packer = changegroup.getbundler(version, repo) | ||||
packer._narrow_matcher = lambda : newmatch | packer._narrow_matcher = lambda : newmatch | ||||
# Extend changegroup receiver so client can fixup after widen requests. | # Extend changegroup receiver so client can fixup after widen requests. | ||||
origcghandler = bundle2.parthandlermapping['changegroup'] | origcghandler = bundle2.parthandlermapping['changegroup'] | ||||
def wrappedcghandler(op, inpart): | def wrappedcghandler(op, inpart): | ||||
origcghandler(op, inpart) | origcghandler(op, inpart) | ||||
if util.safehasattr(op, '_widen_bundle'): | if util.safehasattr(op, '_widen_bundle'): | ||||
handlechangegroup_widen(op, inpart) | handlechangegroup_widen(op, inpart) | ||||
wrappedcghandler.params = origcghandler.params | wrappedcghandler.params = origcghandler.params | ||||
bundle2.parthandlermapping['changegroup'] = wrappedcghandler | bundle2.parthandlermapping['changegroup'] = wrappedcghandler | ||||