Periodically flush git command queue, to avoid boating memory usage too much.
Since the queue is flushed in between subcommand actions being run, there should be no issues with actions that expect to queue up some stuff and have it run after they do other stuff. So I didn't have to audit for such assumptions.
This commit is contained in:
parent
77f45e4e45
commit
bc51387e6d
14 changed files with 101 additions and 59 deletions
|
@ -11,7 +11,7 @@ import Control.Monad.State (liftIO)
|
|||
import System.Posix.Files
|
||||
|
||||
import Command
|
||||
import qualified Annex
|
||||
import qualified AnnexQueue
|
||||
import qualified Backend
|
||||
import LocationLog
|
||||
import Types
|
||||
|
@ -60,5 +60,5 @@ cleanup file key = do
|
|||
let mtime = modificationTime s
|
||||
liftIO $ touch file (TimeSpec mtime) False
|
||||
|
||||
Annex.queue "add" [Param "--"] file
|
||||
AnnexQueue.add "add" [Param "--"] file
|
||||
return True
|
||||
|
|
|
@ -12,7 +12,7 @@ import System.Posix.Files
|
|||
import System.Directory
|
||||
|
||||
import Command
|
||||
import qualified Annex
|
||||
import qualified AnnexQueue
|
||||
import Utility
|
||||
import Content
|
||||
import Messages
|
||||
|
@ -44,5 +44,5 @@ perform file link = do
|
|||
|
||||
cleanup :: FilePath -> CommandCleanup
|
||||
cleanup file = do
|
||||
Annex.queue "add" [Param "--"] file
|
||||
AnnexQueue.add "add" [Param "--"] file
|
||||
return True
|
||||
|
|
|
@ -13,7 +13,7 @@ import System.Directory
|
|||
import Control.Monad (unless)
|
||||
|
||||
import Command
|
||||
import qualified Annex
|
||||
import qualified AnnexQueue
|
||||
import Utility
|
||||
import qualified Backend
|
||||
import Content
|
||||
|
@ -46,5 +46,5 @@ perform file = do
|
|||
|
||||
cleanup :: FilePath -> CommandCleanup
|
||||
cleanup file = do
|
||||
Annex.queue "add" [Param "--"] file
|
||||
AnnexQueue.add "add" [Param "--"] file
|
||||
return True
|
||||
|
|
|
@ -12,6 +12,7 @@ import Control.Monad.State (liftIO)
|
|||
import Command
|
||||
import qualified Command.Drop
|
||||
import qualified Annex
|
||||
import qualified AnnexQueue
|
||||
import LocationLog
|
||||
import Types
|
||||
import Content
|
||||
|
@ -59,7 +60,7 @@ remoteHasKey remote key present = do
|
|||
g <- Annex.gitRepo
|
||||
let remoteuuid = Remote.uuid remote
|
||||
logfile <- liftIO $ logChange g key remoteuuid status
|
||||
Annex.queue "add" [Param "--"] logfile
|
||||
AnnexQueue.add "add" [Param "--"] logfile
|
||||
where
|
||||
status = if present then ValuePresent else ValueMissing
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ import Control.Monad.State (liftIO)
|
|||
|
||||
import Command
|
||||
import qualified Annex
|
||||
import qualified AnnexQueue
|
||||
import qualified GitRepo as Git
|
||||
import qualified Command.Add
|
||||
import qualified Command.Fix
|
||||
|
@ -42,5 +43,5 @@ cleanup file = do
|
|||
-- stage the symlink
|
||||
g <- Annex.gitRepo
|
||||
liftIO $ Git.run g "reset" [Params "-q --", File file]
|
||||
Annex.queueRun
|
||||
AnnexQueue.flush True
|
||||
return True
|
||||
|
|
|
@ -13,6 +13,7 @@ import System.Directory
|
|||
|
||||
import Command
|
||||
import qualified Annex
|
||||
import qualified AnnexQueue
|
||||
import Utility
|
||||
import qualified Backend
|
||||
import LocationLog
|
||||
|
@ -68,6 +69,6 @@ cleanup file key = do
|
|||
-- Commit staged changes at end to avoid confusing the
|
||||
-- pre-commit hook if this file is later added back to
|
||||
-- git as a normal, non-annexed file.
|
||||
Annex.queue "commit" [Params "-a -m", Param "content removed from git annex"] "-a"
|
||||
AnnexQueue.add "commit" [Params "-a -m", Param "content removed from git annex"] "-a"
|
||||
|
||||
return True
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue