diff options
author | Joey Hess <joeyh@joeyh.name> | 2017-09-20 16:34:29 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2017-09-20 16:34:29 -0400 |
commit | 5f513ad675e6e128d5d55aca1b8c7d3b8e47f3ae (patch) | |
tree | 273ee361e2f19e136a564d8709fdc7cec12f1b20 /Assistant | |
parent | 14f19bdafd2dfcbece16214f168a3f8154a24581 (diff) |
assistant: update export db after mergeing git-annex branch changes
Needed so that the assistant can download from exports.
updateExportTreeFromLog is normally only run one time, but needs to be
run repeatedly during the lifetime of the assistant.
This commit was sponsored by Ethan Aubin on Patreon.
Diffstat (limited to 'Assistant')
-rw-r--r-- | Assistant/Sync.hs | 9 | ||||
-rw-r--r-- | Assistant/Threads/Merger.hs | 4 |
2 files changed, 12 insertions, 1 deletions
diff --git a/Assistant/Sync.hs b/Assistant/Sync.hs index c6460e9ed..5f08ec81c 100644 --- a/Assistant/Sync.hs +++ b/Assistant/Sync.hs @@ -35,6 +35,7 @@ import Assistant.TransferQueue import Assistant.RepoProblem import Assistant.Commits import Types.Transfer +import Database.Export import Data.Time.Clock import qualified Data.Map as M @@ -218,6 +219,8 @@ manualPull currentbranch remotes = do forM_ normalremotes $ \r -> liftAnnex $ Command.Sync.mergeRemote r currentbranch Command.Sync.mergeConfig def + when haddiverged $ + updateExportTreeFromLogAll return (catMaybes failed, haddiverged) where wantpull gc = remoteAnnexPull gc @@ -264,3 +267,9 @@ changeSyncFlag r enabled = do void Remote.remoteListRefresh where key = Config.remoteConfig (Remote.repo r) "sync" + +updateExportTreeFromLogAll :: Assistant () +updateExportTreeFromLogAll = do + rs <- exportRemotes <$> getDaemonStatus + forM_ rs $ \r -> liftAnnex $ + openDb (Remote.uuid r) >>= updateExportTreeFromLog diff --git a/Assistant/Threads/Merger.hs b/Assistant/Threads/Merger.hs index 5d40edea7..ff2fdc9a0 100644 --- a/Assistant/Threads/Merger.hs +++ b/Assistant/Threads/Merger.hs @@ -10,6 +10,7 @@ module Assistant.Threads.Merger where import Assistant.Common import Assistant.TransferQueue import Assistant.BranchChange +import Assistant.Sync import Utility.DirWatcher import Utility.DirWatcher.Types import qualified Annex.Branch @@ -62,7 +63,8 @@ onChange file | isAnnexBranch file = do branchChanged diverged <- liftAnnex Annex.Branch.forceUpdate - when diverged $ + when diverged $ do + updateExportTreeFromLogAll queueDeferredDownloads "retrying deferred download" Later | otherwise = mergecurrent where |