# HG changeset patch # User Yuya Nishihara # Date 2015-01-24 10:13:39 # Node ID 3c3ab84e6e783ca45634e5c8b6fe03bc028ed508 # Parent 2f881e7d1ade0956f4fde9377d507ee3c6e9451f fileset: extract function that builds status tuple only if necessary This function will be used to recalculate status when mctx.ctx is switched. diff --git a/mercurial/fileset.py b/mercurial/fileset.py --- a/mercurial/fileset.py +++ b/mercurial/fileset.py @@ -526,7 +526,9 @@ def _buildsubset(ctx, status): def getfileset(ctx, expr): tree = parse(expr) + return getset(fullmatchctx(ctx, _buildstatus(ctx, tree)), tree) +def _buildstatus(ctx, tree): # do we need status info? if (_intree(_statuscallers, tree) or # Using matchctx.existing() on a workingctx requires us to check @@ -536,12 +538,10 @@ def getfileset(ctx, expr): ignored = _intree(['ignored'], tree) r = ctx.repo() - status = r.status(ctx.p1(), ctx, - unknown=unknown, ignored=ignored, clean=True) + return r.status(ctx.p1(), ctx, + unknown=unknown, ignored=ignored, clean=True) else: - status = None - - return getset(fullmatchctx(ctx, status), tree) + return None def prettyformat(tree): return parser.prettyformat(tree, ('string', 'symbol'))