diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- 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 diff --git a/tests/test-commit b/tests/test-commit --- 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 diff --git a/tests/test-commit.out b/tests/test-commit.out --- 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