diff mercurial/util.py @ 31678:1ed57a7dd904

statfs: make getfstype() raise OSError It's better for getfstype() function to not suppress an error. Callers can handle it as necessary. Now "hg debugfsinfo" will report OSError.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 25 Mar 2017 17:25:23 +0900
parents 080734cd2440
children bf64449b2779
line wrap: on
line diff
--- a/mercurial/util.py	Sat Mar 25 17:24:11 2017 +0900
+++ b/mercurial/util.py	Sat Mar 25 17:25:23 2017 +0900
@@ -1089,7 +1089,10 @@
     if hardlink:
         # Hardlinks are problematic on CIFS (issue4546), do not allow hardlinks
         # unless we are confident that dest is on a whitelisted filesystem.
-        fstype = getfstype(os.path.dirname(dest))
+        try:
+            fstype = getfstype(os.path.dirname(dest))
+        except OSError:
+            fstype = None
         if fstype not in _hardlinkfswhitelist:
             hardlink = False
     if hardlink:
@@ -1372,7 +1375,7 @@
 def getfstype(dirpath):
     '''Get the filesystem type name from a directory (best-effort)
 
-    Returns None if we are unsure, or errors like ENOENT, EPERM happen.
+    Returns None if we are unsure. Raises OSError on ENOENT, EPERM, etc.
     '''
     return getattr(osutil, 'getfstype', lambda x: None)(dirpath)