diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-01-01 15:50:59 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-01-01 15:51:29 -0400 |
commit | 131e38a3ae3d40fb38738e78df6fed4e4a1e6005 (patch) | |
tree | 75eee1170dea7d69d24984bbc0d167fcfe9d3a95 /Database | |
parent | 1646987bd266477e97c46dd79145db5cc06230c2 (diff) |
wait for git lstree to exit
Diffstat (limited to 'Database')
-rw-r--r-- | Database/Keys.hs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/Database/Keys.hs b/Database/Keys.hs index 0cd7401be..7a844b5b0 100644 --- a/Database/Keys.hs +++ b/Database/Keys.hs @@ -29,9 +29,8 @@ import Database.Types import Database.Keys.Handle import qualified Database.Queue as H import Locations -import Common hiding (delete) -import Annex -import Types.Key +import Common.Annex hiding (delete) +import qualified Annex import Annex.Perms import Annex.LockFile import Utility.InodeCache @@ -42,7 +41,6 @@ import qualified Git.Branch import Git.Ref import Git.FilePath import Annex.CatFile -import Messages import Database.Persist.TH import Database.Esqueleto hiding (Key) @@ -130,12 +128,12 @@ queueDb a (WriteHandle h) = liftIO $ H.queueDb h checkcommit a {- Gets the handle cached in Annex state; creates a new one if it's not yet - available, but doesn't open the database. -} getDbHandle :: Annex DbHandle -getDbHandle = go =<< getState keysdbhandle +getDbHandle = go =<< Annex.getState Annex.keysdbhandle where go (Just h) = pure h go Nothing = do h <- liftIO newDbHandle - changeState $ \s -> s { keysdbhandle = Just h } + Annex.changeState $ \s -> s { Annex.keysdbhandle = Just h } return h {- Opens the database, perhaps creating it if it doesn't exist yet. @@ -219,11 +217,12 @@ scanAssociatedFiles = whenM (isJust <$> inRepo Git.Branch.current) $ runWriter $ \h -> do showSideAction "scanning for unlocked files" dropallassociated h - l <- inRepo $ Git.LsTree.lsTree headRef + (l, cleanup) <- inRepo $ Git.LsTree.lsTree headRef forM_ l $ \i -> when (isregfile i) $ maybe noop (add h i) =<< catKey (Git.Types.Ref $ Git.LsTree.sha i) + liftIO $ void cleanup where dropallassociated = queueDb $ delete $ from $ \(_r :: SqlExpr (Entity Associated)) -> |