diff --git a/Command/Sync.hs b/Command/Sync.hs index f7ebba6f54..51b6d6f636 100644 --- a/Command/Sync.hs +++ b/Command/Sync.hs @@ -59,14 +59,14 @@ syncRemotes rs = do where pickfast = (++) <$> listed <*> (good =<< fastest <$> available) wanted - | null rs = good =<< available + | null rs = good =<< concat . byspeed <$> available | otherwise = listed listed = catMaybes <$> mapM (Remote.byName . Just) 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 + fastest = fromMaybe [] . headMaybe . byspeed + byspeed = map snd . sort . M.toList . costmap costmap = M.fromListWith (++) . map costpair costpair r = (Types.Remote.cost r, [r]) diff --git a/debian/changelog b/debian/changelog index 1955f8b3b7..10dc1c50c6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ git-annex (3.20120310) UNRELEASED; urgency=low * fsck: Fix up any broken links and misplaced content caused by the directory hash calculation bug fixed in the last release. + * sync: Sync to lower cost remotes first. -- Joey Hess Sat, 10 Mar 2012 14:03:22 -0400