switch to direct mode when auto-enabling

Gets the direct mode mapping set up correctly. Maybe other stuff, but
probably not, since this is probably a new repo.
This commit is contained in:
Joey Hess 2013-02-15 18:16:50 -04:00
parent 397082013a
commit e699a35380

14
Init.hs
View file

@ -17,6 +17,7 @@ import Common.Annex
import Utility.TempFile import Utility.TempFile
import Utility.Network import Utility.Network
import qualified Git import qualified Git
import qualified Git.LsFiles
import qualified Annex.Branch import qualified Annex.Branch
import Logs.UUID import Logs.UUID
import Annex.Version import Annex.Version
@ -25,6 +26,8 @@ import Utility.UserInfo
import Utility.Shell import Utility.Shell
import Utility.FileMode import Utility.FileMode
import Config import Config
import Annex.Direct
import Backend
genDescription :: Maybe String -> Annex String genDescription :: Maybe String -> Annex String
genDescription (Just d) = return d genDescription (Just d) = return d
@ -127,6 +130,13 @@ probeCrippledFileSystem = do
checkCrippledFileSystem :: Annex () checkCrippledFileSystem :: Annex ()
checkCrippledFileSystem = whenM (probeCrippledFileSystem) $ do checkCrippledFileSystem = whenM (probeCrippledFileSystem) $ do
warning "Detected a crippled filesystem. Enabling direct mode." warning "Detected a crippled filesystem."
setDirect True
setCrippledFileSystem True setCrippledFileSystem True
unlessM isDirect $ do
warning "Enabling direct mode."
top <- fromRepo Git.repoPath
(l, clean) <- inRepo $ Git.LsFiles.inRepo [top]
forM_ l $ \f ->
maybe noop (`toDirect` f) =<< isAnnexLink f
void $ liftIO clean
setDirect True