tests/pullext.py
author Anton Shestakov <av6@dwimlabs.net>
Wed, 17 Oct 2018 21:00:36 +0800
changeset 40346 943248e47864
parent 40327 55836a34f41b
child 40393 229d23cdb203
permissions -rw-r--r--
commands: adjust metavariables as appropriate Apart from looking better in hg help command, these strings are also helpful when generating shell completions programmatically.

# pullext.py - Simple extension to test pulling
#
# Copyright 2018 Gregory Szorc <gregory.szorc@gmail.com>
#
# 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.i18n import _
from mercurial import (
    commands,
    extensions,
    localrepo,
    repository,
)

def clonecommand(orig, ui, repo, *args, **kwargs):
    if kwargs.get(r'include') or kwargs.get(r'exclude'):
        kwargs[r'narrow'] = True

    return orig(ui, repo, *args, **kwargs)

def featuresetup(ui, features):
    features.add(repository.NARROW_REQUIREMENT)

def extsetup(ui):
    entry = extensions.wrapcommand(commands.table, 'clone', clonecommand)

    hasinclude = any(x[1] == 'include' for x in entry[1])

    if not hasinclude:
        entry[1].append(('', 'include', [],
                         _('pattern of file/directory to clone')))
        entry[1].append(('', 'exclude', [],
                         _('pattern of file/directory to not clone')))

    localrepo.featuresetupfuncs.add(featuresetup)