view mercurial/match.py @ 7372:e17dbf140035

pull: update to branch tip if there is only one head on the current branch On pull, if the current named branch has only one head, update to it.
author Benoit Allard <benoit@aeteurope.nl>
date Fri, 14 Nov 2008 14:36:17 +0100
parents cbdfd08eabc9
children 08e1baf924ca
line wrap: on
line source

import util

class _match(object):
    def __init__(self, root, cwd, files, mf, ap):
        self._root = root
        self._cwd = cwd
        self._files = files
        self._fmap = dict.fromkeys(files)
        self.matchfn = mf
        self._anypats = ap
    def __call__(self, fn):
        return self.matchfn(fn)
    def __iter__(self):
        for f in self._files:
            yield f
    def bad(self, f, msg):
        return True
    def dir(self, f):
        pass
    def missing(self, f):
        pass
    def exact(self, f):
        return f in self._fmap
    def rel(self, f):
        return util.pathto(self._root, self._cwd, f)
    def files(self):
        return self._files
    def anypats(self):
        return self._anypats

class always(_match):
    def __init__(self, root, cwd):
        _match.__init__(self, root, cwd, [], lambda f: True, False)

class never(_match):
    def __init__(self, root, cwd):
        _match.__init__(self, root, cwd, [], lambda f: False, False)

class exact(_match):
    def __init__(self, root, cwd, files):
        _match.__init__(self, root, cwd, files, lambda f: f in files, False)

class match(_match):
    def __init__(self, root, cwd, patterns, include, exclude, default):
        f, mf, ap = util.matcher(root, cwd, patterns, include, exclude,
                                 None, default)
        _match.__init__(self, root, cwd, f, mf, ap)