changeset 5214:316ce5e85b3e

check exec: return fallback in case of error during the check If there is any error while checking if exec is supported, we can return fallback. fix issue705
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Fri, 24 Aug 2007 00:38:08 +0200
parents 156f4c8a12aa
children b0bc8cf41ffc
files mercurial/util.py
diffstat 1 files changed, 10 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -793,12 +793,16 @@ def checkexec(path):
 
     Requires a directory (like /foo/.hg)
     """
-    fh, fn = tempfile.mkstemp("", "", path)
-    os.close(fh)
-    m = os.stat(fn).st_mode
-    os.chmod(fn, m ^ 0111)
-    r = (os.stat(fn).st_mode != m)
-    os.unlink(fn)
+    try:
+        fh, fn = tempfile.mkstemp("", "", path)
+        os.close(fh)
+        m = os.stat(fn).st_mode
+        os.chmod(fn, m ^ 0111)
+        r = (os.stat(fn).st_mode != m)
+        os.unlink(fn)
+    except (IOError,OSError):
+        # we don't care, the user probably won't be able to commit anyway
+        return False
     return r
 
 def execfunc(path, fallback):