aboutsummaryrefslogtreecommitdiff
path: root/Annex/Content
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-05-20 16:28:33 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-05-20 16:28:33 -0400
commitc79c06e6c243b787afed7817ce1967015eacaf8a (patch)
treea7ee97440b480745094622dc0817615b3fc0651f /Annex/Content
parent9f31e14cc4154d2cb12a62eaf935a0c1528c709a (diff)
didn't quite get removeDirect right before, this passes test suite
Diffstat (limited to 'Annex/Content')
-rw-r--r--Annex/Content/Direct.hs14
1 files changed, 11 insertions, 3 deletions
diff --git a/Annex/Content/Direct.hs b/Annex/Content/Direct.hs
index 91073f687..ef2573c34 100644
--- a/Annex/Content/Direct.hs
+++ b/Annex/Content/Direct.hs
@@ -8,6 +8,7 @@
module Annex.Content.Direct (
associatedFiles,
removeAssociatedFile,
+ removeAssociatedFileUnchecked,
addAssociatedFile,
goodContent,
recordedInodeCache,
@@ -73,15 +74,22 @@ changeAssociatedFiles key transform = do
hPutStr h content
hClose h
-{- Removes an associated file. Returns new associatedFiles value. -}
+{- Removes an associated file. Returns new associatedFiles value.
+ - Checks if this was the last copy of the object, and updates location
+ - log. -}
removeAssociatedFile :: Key -> FilePath -> Annex [FilePath]
removeAssociatedFile key file = do
- file' <- normaliseAssociatedFile file
- fs <- changeAssociatedFiles key $ filter (/= file')
+ fs <- removeAssociatedFileUnchecked key file
when (null fs) $
logStatus key InfoMissing
return fs
+{- Removes an associated file. Returns new associatedFiles value. -}
+removeAssociatedFileUnchecked :: Key -> FilePath -> Annex [FilePath]
+removeAssociatedFileUnchecked key file = do
+ file' <- normaliseAssociatedFile file
+ changeAssociatedFiles key $ filter (/= file')
+
{- Adds an associated file. Returns new associatedFiles value. -}
addAssociatedFile :: Key -> FilePath -> Annex [FilePath]
addAssociatedFile key file = do