diff options
author | 2015-12-03 15:58:00 -0400 | |
---|---|---|
committer | 2015-12-03 15:58:00 -0400 | |
commit | 01bf5a9ec04c2e6711e33d6b43562528d3ab7ae4 (patch) | |
tree | dfed7b4139f1e109c5b477fc7ded075a89621340 | |
parent | 4e853cf9ea98408c37584fbf9a153822e9fbde10 (diff) |
dropunused: Make more robust when trying to drop an object that has already been dropped.
Before it crashed trying to lock the not-present content and prevented
dropping anything else. Instead, succeed.
-rw-r--r-- | Command/DropUnused.hs | 11 | ||||
-rw-r--r-- | debian/changelog | 2 |
2 files changed, 11 insertions, 2 deletions
diff --git a/Command/DropUnused.hs b/Command/DropUnused.hs index 9c2ae972a..d9f02a370 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 ea54b99b4..fae4b598b 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 <id@joeyh.name> Mon, 16 Nov 2015 16:49:34 -0400 |