##// END OF EJS Templates
py3: add b'' prefixes in tests/test-rebuildstate.t...
py3: add b'' prefixes in tests/test-rebuildstate.t # skip-blame because just b'' prefixes Differential Revision: https://phab.mercurial-scm.org/D3601

File last commit:

r38057:ee7b6fa5 default
r38088:74c5ddd9 default
Show More
__init__.py
95 lines | 3.1 KiB | text/x-python | PythonLexer
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 # __init__.py - narrowhg extension
#
# 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.
'''create clones which fetch history data for subset of files (EXPERIMENTAL)'''
from __future__ import absolute_import
Augie Fackler
narrow: remove old version-checking logic and declare internal...
r36102 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for
# extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
# be specifying the version(s) of Mercurial they are tested with, or
# leave the attribute unspecified.
testedwith = 'ships-with-hg-core'
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
from mercurial import (
Martin von Zweigbergk
narrow: move requirement constant to core...
r36482 changegroup,
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 extensions,
hg,
localrepo,
registrar,
verify as verifymod,
)
from . import (
narrowbundle2,
narrowchangegroup,
narrowcommands,
narrowcopies,
narrowdirstate,
narrowpatch,
narrowrepo,
narrowrevlog,
narrowtemplates,
narrowwirepeer,
)
configtable = {}
configitem = registrar.configitem(configtable)
# Narrowhg *has* support for serving ellipsis nodes (which are used at
# least by Google's internal server), but that support is pretty
# fragile and has a lot of problems on real-world repositories that
# have complex graph topologies. This could probably be corrected, but
# absent someone needing the full support for ellipsis nodes in
# repositories with merges, it's unlikely this work will get done. As
# of this writining in late 2017, all repositories large enough for
# ellipsis nodes to be a hard requirement also enforce strictly linear
# history for other scaling reasons.
configitem('experimental', 'narrowservebrokenellipses',
default=False,
alias=[('narrow', 'serveellipses')],
)
# Export the commands table for Mercurial to see.
cmdtable = narrowcommands.table
Gregory Szorc
narrow: use featuresetupfuncs...
r37154 def featuresetup(ui, features):
features.add(changegroup.NARROW_REQUIREMENT)
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
def uisetup(ui):
"""Wraps user-facing mercurial commands with narrow-aware versions."""
Gregory Szorc
narrow: use featuresetupfuncs...
r37154 localrepo.featuresetupfuncs.add(featuresetup)
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 narrowrevlog.setup()
narrowbundle2.setup()
narrowcommands.setup()
narrowchangegroup.setup()
narrowwirepeer.uisetup()
def reposetup(ui, repo):
"""Wraps local repositories with narrow repo support."""
Martin von Zweigbergk
narrow: use repo.local() instead of isinstance()...
r37203 if not repo.local():
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 return
Martin von Zweigbergk
narrow: always wrap repo...
r36486 narrowrepo.wraprepo(repo)
Martin von Zweigbergk
narrow: move requirement constant to core...
r36482 if changegroup.NARROW_REQUIREMENT in repo.requirements:
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 narrowcopies.setup(repo)
narrowdirstate.setup(repo)
narrowpatch.setup(repo)
narrowwirepeer.reposetup(repo)
def _verifierinit(orig, self, repo, matcher=None):
# The verifier's matcher argument was desgined for narrowhg, so it should
# be None from core. If another extension passes a matcher (unlikely),
# we'll have to fail until matchers can be composed more easily.
assert matcher is None
Martin von Zweigbergk
narrow: drop safehasattr() checks for always-present repo.narrowmatch...
r36490 orig(self, repo, repo.narrowmatch())
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096
def extsetup(ui):
Augie Fackler
narrow: remove support for old match modules...
r36097 extensions.wrapfunction(verifymod.verifier, '__init__', _verifierinit)
Augie Fackler
narrow: import experimental extension from narrowhg revision cb51d673e9c5...
r36096 extensions.wrapfunction(hg, 'postshare', narrowrepo.wrappostshare)
extensions.wrapfunction(hg, 'copystore', narrowrepo.unsharenarrowspec)
Augie Fackler
narrowtemplates: update to use registrar mechanism...
r36108
templatekeyword = narrowtemplates.templatekeyword
revsetpredicate = narrowtemplates.revsetpredicate