# HG changeset patch # User Yuya Nishihara # Date 1422094419 -32400 # 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 -r 2f881e7d1ade -r 3c3ab84e6e78 mercurial/fileset.py --- a/mercurial/fileset.py Sat Jan 24 18:56:02 2015 +0900 +++ b/mercurial/fileset.py Sat Jan 24 19:13:39 2015 +0900 @@ -526,7 +526,9 @@ 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 @@ 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'))