only files in normal state should be marked as deleted
fix a traceback when you removed an added file
--- a/mercurial/dirstate.py
+++ b/mercurial/dirstate.py
@@ -390,7 +390,7 @@ class dirstate:
nonexistent = False
# XXX: what to do with file no longer present in the fs
# who are not removed in the dirstate ?
- if nonexistent:
+ if nonexistent and type in "nm":
deleted.append(fn)
continue
# check the common case first
--- a/tests/test-commit
+++ b/tests/test-commit
@@ -11,4 +11,9 @@ hg commit -d '1 15.1' -m commit-4
hg commit -d 'foo bar' -m commit-5
hg commit -d ' 1 4444' -m commit-6
hg commit -d '111111111111 0' -m commit-7
+
+echo bar > bar
+hg add bar
+rm bar
+hg commit -d "0 0" -m commit-8 2>&1 | sed -e "s:/.*\(/test/.*\):...\1:"
exit 0
--- a/tests/test-commit.out
+++ b/tests/test-commit.out
@@ -13,3 +13,4 @@ abort: invalid date: ' 1 4444'
transaction abort!
rollback completed
abort: date exceeds 32 bits: 111111111111
+abort: No such file or directory: .../test/bar