diff options
author | Joey Hess <joey@kitenet.net> | 2012-12-06 13:22:16 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-12-06 13:22:16 -0400 |
commit | 2a04e215e10469ee3bab5d1a5d6d76b0c35cc46c (patch) | |
tree | 41328caa30ae494316d20e1a5e5909b29aa94516 /Logs/PreferredContent.hs | |
parent | 53304252ca5483ce80f5a66bb74cc9f0732f65d7 (diff) |
--auto fixes
* get/copy --auto: Transfer data even if it would exceed numcopies,
when preferred content settings want it.
* drop --auto: Fix dropping content when there are no preferred content
settings.
Diffstat (limited to 'Logs/PreferredContent.hs')
-rw-r--r-- | Logs/PreferredContent.hs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Logs/PreferredContent.hs b/Logs/PreferredContent.hs index ddcc2acf8..e0eb140b1 100644 --- a/Logs/PreferredContent.hs +++ b/Logs/PreferredContent.hs @@ -48,8 +48,8 @@ preferredContentSet NoUUID _ = error "unknown UUID; cannot modify" {- Checks if a file is preferred content for the specified repository - (or the current repository if none is specified). -} -isPreferredContent :: Maybe UUID -> AssumeNotPresent -> FilePath -> Annex Bool -isPreferredContent mu notpresent file = do +isPreferredContent :: Maybe UUID -> AssumeNotPresent -> FilePath -> Bool -> Annex Bool +isPreferredContent mu notpresent file def = do matchfile <- getTopFilePath <$> inRepo (toTopFilePath file) let fi = Annex.FileInfo { Annex.matchFile = matchfile @@ -58,9 +58,11 @@ isPreferredContent mu notpresent file = do u <- maybe getUUID return mu m <- preferredContentMap case M.lookup u m of - Nothing -> return True - Just matcher -> Utility.Matcher.matchMrun matcher $ \a -> - a notpresent fi + Nothing -> return def + Just matcher + | Utility.Matcher.isEmpty matcher -> return def + | otherwise -> Utility.Matcher.matchMrun matcher $ + \a -> a notpresent fi {- The map is cached for speed. -} preferredContentMap :: Annex Annex.PreferredContentMap |