mercurial/util.py
changeset 5216 335696e2a58f
parent 5207 1108c952cca1
parent 5215 b0bc8cf41ffc
child 5266 46c5e1ee8aaa
equal deleted inserted replaced
5213:988ed47d9d65 5216:335696e2a58f
   848     """
   848     """
   849     Check whether the given path is on a filesystem with UNIX-like exec flags
   849     Check whether the given path is on a filesystem with UNIX-like exec flags
   850 
   850 
   851     Requires a directory (like /foo/.hg)
   851     Requires a directory (like /foo/.hg)
   852     """
   852     """
   853     fh, fn = tempfile.mkstemp("", "", path)
   853     try:
   854     os.close(fh)
   854         fh, fn = tempfile.mkstemp("", "", path)
   855     m = os.stat(fn).st_mode
   855         os.close(fh)
   856     os.chmod(fn, m ^ 0111)
   856         m = os.stat(fn).st_mode
   857     r = (os.stat(fn).st_mode != m)
   857         os.chmod(fn, m ^ 0111)
   858     os.unlink(fn)
   858         r = (os.stat(fn).st_mode != m)
       
   859         os.unlink(fn)
       
   860     except (IOError,OSError):
       
   861         # we don't care, the user probably won't be able to commit anyway
       
   862         return False
   859     return r
   863     return r
   860 
   864 
   861 def execfunc(path, fallback):
   865 def execfunc(path, fallback):
   862     '''return an is_exec() function with default to fallback'''
   866     '''return an is_exec() function with default to fallback'''
   863     if checkexec(path):
   867     if checkexec(path):