diff options
author | Joey Hess <joey@kitenet.net> | 2012-10-30 19:33:27 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-10-30 19:33:27 -0400 |
commit | 972f36a9e06a72fe12549d27059794eb86a794a3 (patch) | |
tree | c1deef4f935e85a7943122e21445cbc206bcf2c8 /Assistant/Sync.hs | |
parent | ada8d0bebdb79b26f7168e0a77ee7ecf053bcf14 (diff) |
assistant: Fix syncing local drives.
Amoung other things, this makes it immediately sync files from a removable
drive when it's added.
Diffstat (limited to 'Assistant/Sync.hs')
-rw-r--r-- | Assistant/Sync.hs | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/Assistant/Sync.hs b/Assistant/Sync.hs index 1e94335ef..ccc359672 100644 --- a/Assistant/Sync.hs +++ b/Assistant/Sync.hs @@ -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 |