diff -r cafa447a7d3b -r e8b4b139a545 mercurial/dirstate.py --- a/mercurial/dirstate.py Wed Apr 03 11:35:27 2013 -0700 +++ b/mercurial/dirstate.py Wed Apr 03 11:35:27 2013 -0700 @@ -154,11 +154,14 @@ def flagfunc(self, buildfallback): if self._checklink and self._checkexec: def f(x): - p = self._join(x) - if os.path.islink(p): - return 'l' - if util.isexec(p): - return 'x' + try: + st = os.lstat(self._join(x)) + if util.statislink(st): + return 'l' + if util.statisexec(st): + return 'x' + except OSError: + pass return '' return f