Clean up direct mode cache and mapping info when dropping keys.
These files were left behind, and made getKeysPresent find keys that were not present. It would be expensive to make getKeysPresent check that the actual key files are present (it just lists the directories). But that's not needed if we just clean up the stale cache and mapping files. To handle systems that were in direct mode and got switched back with stale direct mode files, made cleanObjectLoc remove all files in the key's directory. git annex unused will still list keys that are gone but for which the stale direct mode files exists. To deal with that, made dropunused remove the key's directory even if the key does not seem to be present.
This commit is contained in:
parent
21cfce02ee
commit
57780cb3a4
5 changed files with 18 additions and 10 deletions
|
@ -15,7 +15,6 @@ module Annex.Content.Direct (
|
|||
recordedCache,
|
||||
compareCache,
|
||||
writeCache,
|
||||
removeCache,
|
||||
genCache,
|
||||
toCache,
|
||||
Cache(..),
|
||||
|
@ -129,12 +128,6 @@ writeCache key cache = withCacheFile key $ \cachefile -> do
|
|||
createContentDir cachefile
|
||||
liftIO $ writeFile cachefile $ showCache cache
|
||||
|
||||
{- Removes a cache. -}
|
||||
removeCache :: Key -> Annex ()
|
||||
removeCache key = withCacheFile key $ \f -> do
|
||||
createContentDir f -- also thaws directory
|
||||
liftIO $ nukeFile f
|
||||
|
||||
{- Cache a file's inode, size, and modification time to determine if it's
|
||||
- been changed. -}
|
||||
data Cache = Cache FileID FileOffset EpochTime
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue