diff -r b0a6084f9cd6 -r b8f9911c8dca mercurial/cmdutil.py --- a/mercurial/cmdutil.py Tue Nov 28 22:44:04 2023 -0800 +++ b/mercurial/cmdutil.py Wed Nov 29 08:32:24 2023 -0800 @@ -2381,8 +2381,19 @@ full=False, ) ): + entry = dirstate.get_entry(f) + # We don't want to even attmpt to add back files that have been removed + # It would lead to a misleading message saying we're adding the path, + # and can also lead to file/dir conflicts when attempting to add it. + removed = entry and entry.removed exact = match.exact(f) - if exact or not explicitonly and f not in wctx and repo.wvfs.lexists(f): + if ( + exact + or not explicitonly + and f not in wctx + and repo.wvfs.lexists(f) + and not removed + ): if cca: cca(f) names.append(f)