mercurial/subrepo.py
changeset 24182 00ef3edcf1d5
parent 24174 bd9f64ec891d
child 24183 932de135041f
--- a/mercurial/subrepo.py	Wed Jan 14 01:15:26 2015 +0100
+++ b/mercurial/subrepo.py	Thu Feb 26 15:53:54 2015 -0500
@@ -1526,14 +1526,15 @@
     def add(self, ui, match, prefix, explicitonly, **opts):
         if self._gitmissing():
             return []
-        if match.files():
-            files = match.files()
-        else:
-            (modified, added, removed,
-             deleted, unknown, ignored, clean) = self.status(None)
-            files = unknown
+
+        (modified, added, removed,
+         deleted, unknown, ignored, clean) = self.status(None)
 
-        files = [f for f in files if match(f)]
+        # Unknown files not of interest will be rejected by the matcher
+        files = unknown
+        files.extend(match.files())
+
+        files = [f for f in sorted(set(files)) if match(f)]
         for f in files:
             exact = match.exact(f)
             command = ["add"]