aboutsummaryrefslogtreecommitdiff
path: root/Assistant/Sync.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-10-30 19:33:27 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-10-30 19:33:27 -0400
commit972f36a9e06a72fe12549d27059794eb86a794a3 (patch)
treec1deef4f935e85a7943122e21445cbc206bcf2c8 /Assistant/Sync.hs
parentada8d0bebdb79b26f7168e0a77ee7ecf053bcf14 (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.hs27
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