make startup scan for deleted files work in direct mode
git add --update cannot be used, because it'll stage typechanged direct mode files. Intead, use ls-files to find deleted files, and stage them ourselves. It seems that no commit was made before when the scan staged deleted files. (Probably masked since if files were added, a commit happened then..) Now that I'm doing the staging, I was also able to fix that bug.
This commit is contained in:
parent
c6d2bbe402
commit
95db595e91
2 changed files with 23 additions and 8 deletions
|
@ -27,9 +27,10 @@ import Utility.Types.DirWatcher
|
|||
import Utility.Lsof
|
||||
import qualified Annex
|
||||
import qualified Annex.Queue
|
||||
import qualified Git.Command
|
||||
import qualified Git
|
||||
import qualified Git.UpdateIndex
|
||||
import qualified Git.HashObject
|
||||
import qualified Git.LsFiles as LsFiles
|
||||
import qualified Backend
|
||||
import Annex.Content
|
||||
import Annex.CatFile
|
||||
|
@ -83,9 +84,15 @@ startupScan scanner = do
|
|||
|
||||
-- Notice any files that were deleted before
|
||||
-- watching was started.
|
||||
liftAnnex $ do
|
||||
inRepo $ Git.Command.run "add" [Param "--update"]
|
||||
showAction "started"
|
||||
top <- liftAnnex $ fromRepo Git.repoPath
|
||||
(fs, cleanup) <- liftAnnex $ inRepo $ LsFiles.deleted [top]
|
||||
forM_ fs $ \f -> do
|
||||
liftAnnex $ Annex.Queue.addUpdateIndex =<<
|
||||
inRepo (Git.UpdateIndex.unstageFile f)
|
||||
maybe noop recordChange =<< madeChange f RmChange
|
||||
void $ liftIO $ cleanup
|
||||
|
||||
liftAnnex $ showAction "started"
|
||||
|
||||
modifyDaemonStatus_ $ \s -> s { scanComplete = True }
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue