fixed overwrite race with git-annex fix

Similar to git-annex add, git-annex fix queued git add, so if a file
got modified before git add ran, the wrong content would be staged,
perhaps a large file content.

Sponsored-by: Brock Spratlen on Patreon
This commit is contained in:
Joey Hess 2022-06-14 14:19:58 -04:00
parent e47219bcb5
commit 64c7f60f7a
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 6 additions and 10 deletions

View file

@ -15,7 +15,7 @@ import qualified Annex
import Annex.ReplaceFile
import Annex.Content
import Annex.Perms
import qualified Annex.Queue
import Annex.Link
import qualified Database.Keys
import qualified Utility.RawFilePath as R
@ -103,9 +103,5 @@ fixSymlink file link = do
#if ! defined(mingw32_HOST_OS)
liftIO $ maybe noop (\t -> touch file t False) mtime
#endif
next $ cleanupSymlink (fromRawFilePath file)
cleanupSymlink :: FilePath -> CommandCleanup
cleanupSymlink file = do
Annex.Queue.addCommand [] "add" [Param "--force", Param "--"] [file]
return True
stageSymlink file =<< hashSymlink link
next $ return True