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:
parent
e47219bcb5
commit
64c7f60f7a
2 changed files with 6 additions and 10 deletions
|
@ -13,10 +13,10 @@ git-annex (10.20220526) UNRELEASED; urgency=medium
|
||||||
content, but where dropping failed due to eg a network problem,
|
content, but where dropping failed due to eg a network problem,
|
||||||
in cases where numcopies checks prevented the resumed
|
in cases where numcopies checks prevented the resumed
|
||||||
move from dropping the object from the source repository.
|
move from dropping the object from the source repository.
|
||||||
* add: When several files are being added, replacing an annex symlink
|
* add, fix: When several files are being added, replacing an annex symlink
|
||||||
of a file that was already processed with a new large file could
|
of a file that was already processed with a new large file could
|
||||||
sometimes cause that large file to be added to git. This race has been
|
sometimes cause that large file to be added to git.
|
||||||
fixed.
|
These races have been fixed.
|
||||||
* add --batch: Fix handling of a file that is skipped due to being
|
* add --batch: Fix handling of a file that is skipped due to being
|
||||||
gitignored.
|
gitignored.
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ import qualified Annex
|
||||||
import Annex.ReplaceFile
|
import Annex.ReplaceFile
|
||||||
import Annex.Content
|
import Annex.Content
|
||||||
import Annex.Perms
|
import Annex.Perms
|
||||||
import qualified Annex.Queue
|
import Annex.Link
|
||||||
import qualified Database.Keys
|
import qualified Database.Keys
|
||||||
import qualified Utility.RawFilePath as R
|
import qualified Utility.RawFilePath as R
|
||||||
|
|
||||||
|
@ -103,9 +103,5 @@ fixSymlink file link = do
|
||||||
#if ! defined(mingw32_HOST_OS)
|
#if ! defined(mingw32_HOST_OS)
|
||||||
liftIO $ maybe noop (\t -> touch file t False) mtime
|
liftIO $ maybe noop (\t -> touch file t False) mtime
|
||||||
#endif
|
#endif
|
||||||
next $ cleanupSymlink (fromRawFilePath file)
|
stageSymlink file =<< hashSymlink link
|
||||||
|
next $ return True
|
||||||
cleanupSymlink :: FilePath -> CommandCleanup
|
|
||||||
cleanupSymlink file = do
|
|
||||||
Annex.Queue.addCommand [] "add" [Param "--force", Param "--"] [file]
|
|
||||||
return True
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue