##// END OF EJS Templates
clfilter: do not use tags cache if there are filtered changesets...
clfilter: do not use tags cache if there are filtered changesets If there are filtered changesets the cache is not valid. We'll have to cache tags for filtered state too, but for now recomputing the tags is enough.

File last commit:

r14730:f5765353 stable
r17715:21c50348 default
Show More
casesmash.py
34 lines | 895 B | text/x-python | PythonLexer
Matt Mackall
merge with stable
r14730 import sys, os, __builtin__
from mercurial import util
def lowerwrap(scope, funcname):
f = getattr(scope, funcname)
def wrap(fname, *args, **kwargs):
d, base = os.path.split(fname)
try:
files = os.listdir(d or '.')
except OSError, inst:
files = []
if base in files:
return f(fname, *args, **kwargs)
for fn in files:
if fn.lower() == base.lower():
return f(os.path.join(d, fn), *args, **kwargs)
return f(fname, *args, **kwargs)
scope.__dict__[funcname] = wrap
def normcase(path):
return path.lower()
os.path.normcase = normcase
for f in 'file open'.split():
lowerwrap(__builtin__, f)
for f in "chmod chown open lstat stat remove unlink".split():
lowerwrap(os, f)
for f in "exists lexists".split():
lowerwrap(os.path, f)
lowerwrap(util, 'posixfile')