mercurial/dirstate.py
changeset 18869 e8b4b139a545
parent 18815 a18919de61e5
child 18897 38982de2b4eb
--- 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