assistant: Fix syncing local drives.

Amoung other things, this makes it immediately sync files from a removable
drive when it's added.
This commit is contained in:
Joey Hess 2012-10-30 19:33:27 -04:00
parent 60fba9097a
commit 7fe1baf3f1
2 changed files with 16 additions and 12 deletions

View file

@ -43,18 +43,21 @@ reconnectRemotes notifypushes rs = void $ do
=<< liftAnnex (inRepo Git.Branch.current)
addScanRemotes diverged rs
return ok
where
(gitremotes, _specialremotes) =
partition (Git.repoIsUrl . Remote.repo) rs
sync (Just branch) = do
diverged <- snd <$> manualPull (Just branch) gitremotes
now <- liftIO getCurrentTime
ok <- pushToRemotes now notifypushes gitremotes
return (ok, diverged)
{- No local branch exists yet, but we can try pulling. -}
sync Nothing = do
diverged <- snd <$> manualPull Nothing gitremotes
return (True, diverged)
where
gitremotes = filter (notspecialremote . Remote.repo) rs
notspecialremote r
| Git.repoIsUrl r = True
| Git.repoIsLocal r = True
| otherwise = False
sync (Just branch) = do
diverged <- snd <$> manualPull (Just branch) gitremotes
now <- liftIO getCurrentTime
ok <- pushToRemotes now notifypushes gitremotes
return (ok, diverged)
{- No local branch exists yet, but we can try pulling. -}
sync Nothing = do
diverged <- snd <$> manualPull Nothing gitremotes
return (True, diverged)
{- Updates the local sync branch, then pushes it to all remotes, in
- parallel, along with the git-annex branch. This is the same