diff mercurial/cmdutil.py @ 51163:b8f9911c8dca

add: don't attempt to add back removed files unless explicitly listed This fixes the bug demonstrated by the previous patch.
author Martin von Zweigbergk <martinvonz@google.com>
date Wed, 29 Nov 2023 08:32:24 -0800
parents 18c8c18993f0
children 9d3721552b6c
line wrap: on
line diff
--- 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)