get rid of racy addLink

The remaining callers all did not rely on it checking gitignore, so were
easy to convert.

They were susceptable to the same overwrite race as add and fix,
although less likely to have it and a narrower window than add's race.

Command.Rekey in passing got an unncessary call to removeFile deleted.
addSymlink handles deleting any existing worktree file.
This commit is contained in:
Joey Hess 2022-06-14 14:40:55 -04:00
parent 7ace804d8e
commit 78a3d44ea0
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
7 changed files with 15 additions and 47 deletions

View file

@ -60,8 +60,7 @@ start si file key = ifM (isJust <$> isAnnexLink file)
perform :: RawFilePath -> Key -> CommandPerform
perform file key = do
lockdown =<< calcRepo (gitAnnexLocation key)
addLink (CheckGitIgnore False) file key
=<< withTSDelta (liftIO . genInodeCache file)
addSymlink file key =<< withTSDelta (liftIO . genInodeCache file)
next $ return True
where
lockdown obj = do