[PATCH 1 of 2] revert: move targetsubs calculation down to its use

Durham Goode durham at fb.com
Fri Sep 19 20:53:10 CDT 2014


# HG changeset patch
# User Durham Goode <durham at fb.com>
# Date 1411177239 25200
#      Fri Sep 19 18:40:39 2014 -0700
# Node ID b74b7d5f46d5d8ad13ca74e6b740970129090529
# Parent  273bf648227540a7ef87c4794e96b8a9d915d5b7
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 --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -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:


More information about the Mercurial-devel mailing list