Skip to content
Snippets Groups Projects
Commit 0176d0db authored by Katsunori FUJIWARA's avatar Katsunori FUJIWARA
Browse files

icasefs: ignore removed files at building "dirstate._foldmap" up on icasefs

Before this patch, all files in dirstate are used to build "_foldmap"
up on case insensitive filesystem regardless of their statuses.

For example, when dirstate contains both removed file 'a' and added
file 'A', "_foldmap" may be updated finally by removed file 'a'. This
causes unexpected status information for added file 'A' at "hg status"
invocation.

This patch ignores removed files at building "_foldmap" up on case
insensitive filessytem.

This patch doesn't add any test, because this issue is difficult to
reproduce intentionally: it depends on iteration order of "dirstate._map".
parent 294e901f
No related branches found
No related tags found
No related merge requests found
......@@ -59,8 +59,9 @@
@propertycache
def _foldmap(self):
f = {}
for name in self._map:
f[util.normcase(name)] = name
for name, s in self._map.iteritems():
if s[0] != 'r':
f[util.normcase(name)] = name
for name in self._dirs:
f[util.normcase(name)] = name
f['.'] = '.' # prevents useless util.fspath() invocation
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment