dropunused: Make more robust when trying to drop an object that has already been...
authorJoey Hess <joeyh@joeyh.name>
Thu, 3 Dec 2015 19:58:00 +0000 (15:58 -0400)
committerJoey Hess <joeyh@joeyh.name>
Thu, 3 Dec 2015 19:58:00 +0000 (15:58 -0400)
Before it crashed trying to lock the not-present content and prevented
dropping anything else. Instead, succeed.

Command/DropUnused.hs
debian/changelog

index 9c2ae972a59ec441b1ef35ec7bc72867af1ef9bb..d9f02a370ff79f9ae4af8005340dfcd3965db45a 100644 (file)
@@ -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
index ea54b99b4e9feaf23481a06b04ef8c1b4646e754..fae4b598b4c6de56dcf0613e58250f1e46363170 100644 (file)
@@ -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