view tests/pullext.py @ 40386:4a81d82474e9

lfs: consult the narrow matcher when extracting pointers from ctx (issue5794) I added a testcase for lfs to all narrow tests, and the following failed: test-narrow-acl.t test-narrow-exchange.t test-narrow-patterns.t test-narrow-strip.t test-narrow-trackedcmd.t test-narrow-widen.t test-narrow.t The first two still have errors in the pretxnchangegroup on clone and (receiving a) push, which I'm still looking into (4d63f3bc1e1a fixed something in this area already). These two modified tests seem to cover the things that failed in the remaining narrow tests, i.e. `hg tracked` and `hg strip`, so I didn't bother enabling the testcases elsewhere. Maybe we should, but it's 68 tests total.
author Matt Harbison <matt_harbison@yahoo.com>
date Sun, 21 Oct 2018 22:26:00 -0400
parents 55836a34f41b
children 229d23cdb203
line wrap: on
line source

# 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)