diff --git a/Command/DropUnused.hs b/Command/DropUnused.hs index 9c2ae972a5..d9f02a370f 100644 --- a/Command/DropUnused.hs +++ b/Command/DropUnused.hs @@ -14,6 +14,7 @@ import qualified Remote import qualified Git import Command.Unused (withUnusedMaps, UnusedMaps(..), startUnused) import Annex.NumCopies +import Annex.Content cmd :: Command cmd = command "dropunused" SectionMaintenance @@ -37,14 +38,20 @@ seek o = do withUnusedMaps (start from numcopies) (rangesToDrop o) start :: Maybe Remote -> NumCopies -> UnusedMaps -> Int -> CommandStart -start from numcopies = startUnused "dropunused" (perform from numcopies) (performOther gitAnnexBadLocation) (performOther gitAnnexTmpObjectLocation) +start from numcopies = startUnused "dropunused" + (perform from numcopies) + (performOther gitAnnexBadLocation) + (performOther gitAnnexTmpObjectLocation) perform :: Maybe Remote -> NumCopies -> Key -> CommandPerform perform from numcopies key = case from of Just r -> do showAction $ "from " ++ Remote.name r Command.Drop.performRemote key Nothing numcopies r - Nothing -> Command.Drop.performLocal key Nothing numcopies [] + Nothing -> ifM (inAnnex key) + ( Command.Drop.performLocal key Nothing numcopies [] + , next (return True) + ) performOther :: (Key -> Git.Repo -> FilePath) -> Key -> CommandPerform performOther filespec key = do diff --git a/debian/changelog b/debian/changelog index ea54b99b4e..fae4b598b4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,6 +18,8 @@ git-annex (5.20151117) UNRELEASED; urgency=medium being written to ~/.config/git-annex/autostart, and ignore any such relative paths in the file. This was a reversion caused by the relative path changes in 5.20150113. + * dropunused: Make more robust when trying to drop an object that has + already been dropped. -- Joey Hess Mon, 16 Nov 2015 16:49:34 -0400