# HG changeset patch # User Durham Goode # Date 1411177239 25200 # Node ID 8d707da26f9b8ca6fffecadd46c4c9c7b828d354 # Parent 85ade05dc5b3547daa7f4c87bf5171a3e3d791fe revert: move targetsubs calculation down to its use A future patch will be reorganizing this section of the code into two paths, and targetsubs complicates this by existing in the middle of one path, but not the other. We fix that by moving it 200 lines down, to the only place it's used. diff -r 85ade05dc5b3 -r 8d707da26f9b mercurial/cmdutil.py --- a/mercurial/cmdutil.py Tue Sep 23 14:20:08 2014 -0400 +++ b/mercurial/cmdutil.py Fri Sep 19 18:40:39 2014 -0700 @@ -2503,9 +2503,6 @@ if abs not in names: names[abs] = m.rel(abs), m.exact(abs) - # get the list of subrepos that must be reverted - targetsubs = sorted(s for s in ctx.substate if m(s)) - # Find status of all file in `names`. m = scmutil.matchfiles(repo, names) @@ -2692,6 +2689,10 @@ if not opts.get('dry_run'): _performrevert(repo, parents, ctx, actions) + # get the list of subrepos that must be reverted + subrepomatch = scmutil.match(ctx, pats, opts) + targetsubs = sorted(s for s in ctx.substate if subrepomatch(s)) + if targetsubs: # Revert the subrepos on the revert list for sub in targetsubs: