Fix direct mode getKeysPresent false positive & also sped up direct mode unused and unannex
unused: In direct mode, files that are deleted from the work tree are no longer incorrectly detected as unused. Direct mode `git annex info` slows down a bit due to more stringent checking, but not by a lot.
This commit is contained in:
parent
580adbcaee
commit
1f99a6778f
7 changed files with 52 additions and 18 deletions
|
@ -281,7 +281,7 @@ cachedPresentData = do
|
|||
case presentData s of
|
||||
Just v -> return v
|
||||
Nothing -> do
|
||||
v <- foldKeys <$> lift getKeysPresent
|
||||
v <- foldKeys <$> lift (getKeysPresent InRepository)
|
||||
put s { presentData = Just v }
|
||||
return v
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ finish :: Annex ()
|
|||
finish = do
|
||||
annexdir <- fromRepo gitAnnexDir
|
||||
annexobjectdir <- fromRepo gitAnnexObjectDir
|
||||
leftovers <- removeUnannexed =<< getKeysPresent
|
||||
leftovers <- removeUnannexed =<< getKeysPresent InAnnex
|
||||
if null leftovers
|
||||
then liftIO $ removeDirectoryRecursive annexdir
|
||||
else error $ unlines
|
||||
|
|
|
@ -71,7 +71,9 @@ checkUnused = chain 0
|
|||
return []
|
||||
findunused False = do
|
||||
showAction "checking for unused data"
|
||||
excludeReferenced =<< getKeysPresent
|
||||
-- InAnnex, not InRepository because if a direct mode
|
||||
-- file exists, it is obviously not unused.
|
||||
excludeReferenced =<< getKeysPresent InAnnex
|
||||
chain _ [] = next $ return True
|
||||
chain v (a:as) = do
|
||||
v' <- a v
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue