view hgext/narrow/narrowcopies.py @ 37416:7542e97c7867

tests: conditionalize tests for various repo features Working my down the long tail of test failures due to the simple store. We're now down to 38 failures with the simple store. Differential Revision: https://phab.mercurial-scm.org/D3096
author Gregory Szorc <gregory.szorc@gmail.com>
date Wed, 04 Apr 2018 14:04:18 -0700
parents d0d5eef57fb0
children
line wrap: on
line source

# 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)
        narrowmatch = repo.narrowmatch()
        if narrowmatch.always():
            return missing
        missing = [f for f in missing if narrowmatch(f)]
        return missing

    def _checkcopies(orig, srcctx, dstctx, f, base, tca, remotebase, limit,
                     data):
        narrowmatch = repo.narrowmatch()
        if not narrowmatch(f):
            return
        orig(srcctx, dstctx, f, base, tca, remotebase, limit, data)

    extensions.wrapfunction(copies, '_computeforwardmissing',
                            _computeforwardmissing)
    extensions.wrapfunction(copies, '_checkcopies', _checkcopies)