OSX assistant: Uses direct mode by default when setting up a new local repository.
This commit is contained in:
parent
561e317506
commit
c0f9810f0b
6 changed files with 37 additions and 18 deletions
|
@ -41,9 +41,9 @@ import Data.Either
|
|||
{- This thread makes git commits at appropriate times. -}
|
||||
commitThread :: NamedThread
|
||||
commitThread = NamedThread "Committer" $ do
|
||||
delayadd <- liftAnnex $
|
||||
maybe delayaddDefault (Just . Seconds) . readish
|
||||
<$> getConfig (annexConfig "delayadd") ""
|
||||
delayadd <- liftAnnex $ do
|
||||
v <- readish <$> getConfig (annexConfig "delayadd") ""
|
||||
maybe delayaddDefault (return . Just . Seconds) v
|
||||
runEvery (Seconds 1) <~> do
|
||||
-- We already waited one second as a simple rate limiter.
|
||||
-- Next, wait until at least one change is available for
|
||||
|
@ -115,13 +115,17 @@ shouldCommit now changes
|
|||
thisSecond c = now `diffUTCTime` changeTime c <= 1
|
||||
|
||||
{- OSX needs a short delay after a file is added before locking it down,
|
||||
- as pasting a file seems to try to set file permissions or otherwise
|
||||
- access the file after closing it. -}
|
||||
delayaddDefault :: Maybe Seconds
|
||||
- when using a non-direct mode repository, as pasting a file seems to
|
||||
- try to set file permissions or otherwise access the file after closing
|
||||
- it. -}
|
||||
delayaddDefault :: Annex (Maybe Seconds)
|
||||
#ifdef darwin_HOST_OS
|
||||
delayaddDefault = Just $ Seconds 1
|
||||
delayaddDefault = ifM isDirect
|
||||
( return Nothing
|
||||
, return $ Just $ Seconds 1
|
||||
)
|
||||
#else
|
||||
delayaddDefault = Nothing
|
||||
delayaddDefault = return Nothing
|
||||
#endif
|
||||
|
||||
{- If there are PendingAddChanges, or InProcessAddChanges, the files
|
||||
|
|
|
@ -29,6 +29,7 @@ import Annex.UUID
|
|||
import Types.StandardGroups
|
||||
import Logs.PreferredContent
|
||||
import Utility.UserInfo
|
||||
import Config
|
||||
|
||||
import qualified Data.Text as T
|
||||
import Data.Char
|
||||
|
@ -144,7 +145,7 @@ getNewRepositoryR = page "Add another repository" (Just Config) $ do
|
|||
FormSuccess (RepositoryPath p) -> lift $ do
|
||||
let path = T.unpack p
|
||||
liftIO $ makeRepo path False
|
||||
u <- liftIO $ initRepo path Nothing
|
||||
u <- liftIO $ initRepo True path Nothing
|
||||
runAnnex () $ setStandardGroup u ClientGroup
|
||||
liftIO $ addAutoStart path
|
||||
redirect $ SwitchToRepositoryR path
|
||||
|
@ -187,7 +188,7 @@ getAddDriveR = page "Add a removable drive" (Just Config) $ do
|
|||
where
|
||||
make mountpoint = do
|
||||
liftIO $ makerepo dir
|
||||
u <- liftIO $ initRepo dir $ Just remotename
|
||||
u <- liftIO $ initRepo False dir $ Just remotename
|
||||
r <- addremote dir remotename
|
||||
runAnnex () $ setStandardGroup u TransferGroup
|
||||
syncRemote r
|
||||
|
@ -246,7 +247,7 @@ startFullAssistant path = do
|
|||
webapp <- getYesod
|
||||
url <- liftIO $ do
|
||||
makeRepo path False
|
||||
u <- initRepo path Nothing
|
||||
u <- initRepo True path Nothing
|
||||
inDir path $
|
||||
setStandardGroup u ClientGroup
|
||||
addAutoStart path
|
||||
|
@ -271,8 +272,8 @@ inDir dir a = do
|
|||
state <- Annex.new =<< Git.Config.read =<< Git.Construct.fromPath dir
|
||||
Annex.eval state a
|
||||
|
||||
initRepo :: FilePath -> Maybe String -> IO UUID
|
||||
initRepo dir desc = inDir dir $ do
|
||||
initRepo :: Bool -> FilePath -> Maybe String -> IO UUID
|
||||
initRepo primary_assistant_repo dir desc = inDir dir $ do
|
||||
{- Initialize a git-annex repository in a directory with a description. -}
|
||||
unlessM isInitialized $
|
||||
initialize desc
|
||||
|
@ -285,6 +286,12 @@ initRepo dir desc = inDir dir $ do
|
|||
, Param "-m"
|
||||
, Param "created repository"
|
||||
]
|
||||
#ifdef darwin_HOST_OS
|
||||
{- Use direct mode repositories by default on OSX, because
|
||||
- this avoids some problems with the Finder. -}
|
||||
when primary_assistant_repo $
|
||||
setDirect True
|
||||
#endif
|
||||
getUUID
|
||||
|
||||
{- Adds a directory to the autostart file. -}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue