diff --git a/mercurial/narrowspec.py b/mercurial/narrowspec.py
--- a/mercurial/narrowspec.py
+++ b/mercurial/narrowspec.py
@@ -351,6 +351,6 @@
     addedmatch = matchmod.intersectmatchers(addedmatch, sparse.matcher(repo))
     newfiles = [f for f in pctx.manifest().walk(addedmatch) if f not in ds]
     for f in newfiles:
-        ds.normallookup(f)
+        ds.update_file(f, p1_tracked=True, wc_tracked=True, possibly_dirty=True)
     _writeaddedfiles(repo, pctx, newfiles)
     repo._updatingnarrowspec = False