mercurial/cmdutil.py
changeset 22551 8d707da26f9b
parent 22491 5e16fe6fdd32
child 22573 f528bfb25b45
--- 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: