mercurial/commands.py
changeset 37438 7b7ca9ba2de5
parent 37437 814e080a1215
child 37479 d665b4ea7d4c
--- a/mercurial/commands.py	Wed Apr 04 21:09:47 2018 -0700
+++ b/mercurial/commands.py	Wed Apr 04 21:27:02 2018 -0700
@@ -3491,19 +3491,13 @@
         if rev or node:
             raise error.Abort(_("can't specify a revision with --all"))
 
-        res = []
-        # TODO this is a massive layering violation. It assumes the repo is
-        # backed by revlogs with a well-defined naming scheme.
-        prefix = "data/"
-        suffix = ".i"
-        plen = len(prefix)
-        slen = len(suffix)
-        with repo.lock():
-            for fn, b, size in repo.store.datafiles():
-                if size != 0 and fn[-slen:] == suffix and fn[:plen] == prefix:
-                    res.append(fn[plen:-slen])
+        res = set()
+        for rev in repo:
+            ctx = repo[rev]
+            res |= set(ctx.files())
+
         ui.pager('manifest')
-        for f in res:
+        for f in sorted(res):
             fm.startitem()
             fm.write("path", '%s\n', f)
         fm.end()