init: Detect when the filesystem is crippled such that it ignores attempts to remove the write bit from a file, and enable direct mode. Seen with eg, NTFS fuse on linux.
This commit is contained in:
parent
267f397d82
commit
b30324fec7
3 changed files with 18 additions and 2 deletions
|
@ -128,6 +128,7 @@ probeCrippledFileSystem = do
|
||||||
createAnnexDirectory tmp
|
createAnnexDirectory tmp
|
||||||
liftIO $ writeFile f ""
|
liftIO $ writeFile f ""
|
||||||
uncrippled <- liftIO $ probe f
|
uncrippled <- liftIO $ probe f
|
||||||
|
void $ liftIO $ tryIO $ allowWrite f
|
||||||
liftIO $ removeFile f
|
liftIO $ removeFile f
|
||||||
return $ not uncrippled
|
return $ not uncrippled
|
||||||
where
|
where
|
||||||
|
@ -137,8 +138,9 @@ probeCrippledFileSystem = do
|
||||||
createSymbolicLink f f2
|
createSymbolicLink f f2
|
||||||
nukeFile f2
|
nukeFile f2
|
||||||
preventWrite f
|
preventWrite f
|
||||||
allowWrite f
|
-- Should be unable to write to the file, but some crippled
|
||||||
return True
|
-- filesystems ignore write bit removals.
|
||||||
|
not <$> catchBoolIO (writeFile f "2" >> return True)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
checkCrippledFileSystem :: Annex ()
|
checkCrippledFileSystem :: Annex ()
|
||||||
|
|
3
debian/changelog
vendored
3
debian/changelog
vendored
|
@ -6,6 +6,9 @@ git-annex (5.20150728) UNRELEASED; urgency=medium
|
||||||
* The last release accidentially removed a number of options from the
|
* The last release accidentially removed a number of options from the
|
||||||
copy command. (-J, file matching options, etc). These have been added
|
copy command. (-J, file matching options, etc). These have been added
|
||||||
back.
|
back.
|
||||||
|
* init: Detect when the filesystem is crippled such that it ignores
|
||||||
|
attempts to remove the write bit from a file, and enable direct mode.
|
||||||
|
Seen with eg, NTFS fuse on linux.
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Mon, 27 Jul 2015 15:57:07 -0400
|
-- Joey Hess <id@joeyh.name> Mon, 27 Jul 2015 15:57:07 -0400
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="joey"
|
||||||
|
subject="""comment 1"""
|
||||||
|
date="2015-07-30T17:54:11Z"
|
||||||
|
content="""
|
||||||
|
Good idea. Also, putting an indirect mode repo on a NTFS filesystem would
|
||||||
|
probably yield confusing results when trying to use it on windows..
|
||||||
|
|
||||||
|
I've put a check for this in with the other crippled FS checks that init
|
||||||
|
does.
|
||||||
|
"""]]
|
Loading…
Add table
Add a link
Reference in a new issue