diff options
author | 2012-12-08 13:13:36 -0400 | |
---|---|---|
committer | 2012-12-08 13:13:36 -0400 | |
commit | 8150faff37b4f6a55a86ea14cd181edede6a8084 (patch) | |
tree | affc96061102dcf434367d7720807e630223d471 /Annex/Content.hs | |
parent | 9c5e49160d8a01d3edcecf3324fd4f1a2bafb72c (diff) |
update the cache automatically when moving objects in or out
Diffstat (limited to 'Annex/Content.hs')
-rw-r--r-- | Annex/Content.hs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/Annex/Content.hs b/Annex/Content.hs index 3dfb4d864..f0b9b4957 100644 --- a/Annex/Content.hs +++ b/Annex/Content.hs @@ -187,10 +187,10 @@ prepTmp key = do - and not being copied into place. -} getViaTmpUnchecked :: Key -> (FilePath -> Annex Bool) -> Annex Bool getViaTmpUnchecked key action = do - tmp <- prepTmp key - ifM (action tmp) + tmpfile <- prepTmp key + ifM (action tmpfile) ( do - moveAnnex key tmp + moveAnnex key tmpfile logStatus key InfoPresent return True , do @@ -267,6 +267,7 @@ moveAnnex key src = withObjectLoc key storeobject storedirect ) storedirect [] = storeobject =<< inRepo (gitAnnexLocation key) storedirect (dest:fs) = do + updateCache key src thawContent src liftIO $ replaceFile dest $ moveFile src liftIO $ forM_ fs $ \f -> replaceFile f $ createLink dest @@ -305,7 +306,9 @@ removeAnnex key = withObjectLoc key remove removedirect allowWrite $ parentDir file removeFile file cleanObjectLoc key - removedirect fs = mapM_ resetfile fs + removedirect fs = do + removeCache key + mapM_ resetfile fs resetfile f = do l <- calcGitLink f key top <- fromRepo Git.repoPath |