# HG changeset patch # User FUJIWARA Katsunori # Date 1384182443 -32400 # Node ID 9276014db8650492a5df142874d45846d44417c2 # Parent ce5d711475a314608bea33c5acebc323e2122098 scmutil: skip checks in "casecollisionauditor" if filename is already checked Before this patch, almost all of check code in "casecollisionauditor.__call__()" is executed, even if specified filename is already checked, because "f in self._newfiles" is examined lastly. In addition to it, adding "fl" to "self._loweredfiles" and "f" to "self._newfiles" are also redundant in such case. This patch checks "f in self._newfiles" first, and returns immediately to avoid execution of check code for efficiency. diff -r ce5d711475a3 -r 9276014db865 mercurial/scmutil.py --- a/mercurial/scmutil.py Tue Nov 05 09:43:36 2013 +0100 +++ b/mercurial/scmutil.py Tue Nov 12 00:07:23 2013 +0900 @@ -97,9 +97,10 @@ self._newfiles = set() def __call__(self, f): + if f in self._newfiles: + return fl = encoding.lower(f) - if (fl in self._loweredfiles and f not in self._dirstate and - f not in self._newfiles): + if fl in self._loweredfiles and f not in self._dirstate: msg = _('possible case-folding collision for %s') % f if self._abort: raise util.Abort(msg)