diff --git a/mercurial/scmposix.py b/mercurial/scmposix.py
--- a/mercurial/scmposix.py
+++ b/mercurial/scmposix.py
@@ -27,7 +27,7 @@
         rcs.extend(
             [
                 os.path.join(rcdir, f)
-                for f, kind in util.listdir(rcdir)
+                for f, kind in sorted(util.listdir(rcdir))
                 if f.endswith(b".rc")
             ]
         )
diff --git a/mercurial/scmwindows.py b/mercurial/scmwindows.py
--- a/mercurial/scmwindows.py
+++ b/mercurial/scmwindows.py
@@ -31,7 +31,7 @@
 
     def _processdir(progrcd):
         if os.path.isdir(progrcd):
-            for f, kind in util.listdir(progrcd):
+            for f, kind in sorted(util.listdir(progrcd)):
                 if f.endswith(b'.rc'):
                     rcpath.append(os.path.join(progrcd, f))