FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 16 Dec 2011 21:09:40 +0900] rev 15670
icasefs: avoid normcase()-ing in util.fspath() for efficiency
'dirstate._normalize()', the only caller of 'util.fspath()', has
already normcase()-ed path before invocation of it.
normcase()-ed root can be cached on dirstate side, too.
so, this patch changes 'util.fspath()' API specification to avoid
normcase()-ing in it.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 16 Dec 2011 21:09:40 +0900] rev 15669
icasefs: use util.normcase() instead of lower() or os.path.normcase in fspath
this also avoids lower()-ing on each path components by reuse the path
normcase()-ed at beginning of function.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 16 Dec 2011 21:09:40 +0900] rev 15668
dirstate: prevent useless util.fspath() invocation for '.'
at first of dirstate.walk() on case insensitive filesystem,
normalization of '.' causes util.fspath() invocation, but '.' is not
cached in it.
this invocation is not only useless, but also harmful: initial "hg
tag" causes creation of ".hgtags" file after dirstate.walk(), and
looking up ".hgtags" in cache will fail, because directory contents of
root is already cached at util.fspath() invocation for '.'.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 16 Dec 2011 21:09:40 +0900] rev 15667
icasefs: consider as case sensitive if there is no counterevidence, for safety
for safety, this patch prevents case-less name from misleading into
case insensitivity, even though such names should not be used.