diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
index e64c35dfc6cb948f1caafe262453699dab22a530_bWVyY3VyaWFsL2xvY2FscmVwby5weQ==..6979a20ff004b0f95c62b79359ffbfab75073505_bWVyY3VyaWFsL2xvY2FscmVwby5weQ== 100644
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -3164,6 +3164,9 @@
                     rf = metadata.get_removal_filter(ctx, (p1, p2, m1, m2))
                     removed = [f for f in removed if not rf(f)]
 
+                if writechangesetcopy:
+                    filesremoved = removed
+
                 files = changed + removed
                 md = None
                 if not files:
@@ -3194,9 +3197,6 @@
                         drop,
                         match=self.narrowmatch(),
                     )
-
-                    if writechangesetcopy:
-                        filesremoved = removed
                 else:
                     self.ui.debug(
                         b'reusing manifest from p1 (listed files '