From f0957426c586610d16ad9694e002b73324baa29a Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 31 Dec 2011 04:50:39 -0400 Subject: skip local remotes that are not available (ie, not mounted) With --fast, unavailable local remotes are filtered out of the fast set. This way, if there are local remotes, --fast always acts only on them, and if none are mounted, acts on nothing. This consistency is better than --fast acting on different remotes depending on what's mounted. --- Command/Sync.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Command') diff --git a/Command/Sync.hs b/Command/Sync.hs index 759df36ea..445a37137 100644 --- a/Command/Sync.hs +++ b/Command/Sync.hs @@ -57,12 +57,13 @@ syncRemotes rs = do then nub <$> pickfast else wanted where - pickfast = (++) <$> listed <*> (fastest <$> available) + pickfast = (++) <$> listed <*> (good =<< fastest <$> available) wanted - | null rs = available + | null rs = good =<< available | otherwise = listed listed = mapM Remote.byName rs available = filter nonspecial <$> Remote.enabledRemoteList + good = filterM $ Remote.Git.repoAvail . Types.Remote.repo nonspecial r = Types.Remote.remotetype r == Remote.Git.remote fastest = fromMaybe [] . headMaybe . map snd . sort . M.toList . costmap -- cgit v1.2.3