git-annex/Annex
Joey Hess b819f644ad close the git add race
There's a race adding a new file to the annex: The file is moved to the
annex and replaced with a symlink, and then we git add the symlink. If
someone comes along in the meantime and replaces the symlink with
something else, such as a new large file, we add that instead. Which could
be bad..

This race is fixed by avoiding using git add, instead the symlink is
directly staged into the index.

It would be nice to make `git annex add` use this same technique.
I have not done so yet because it currently runs git update-index once per
file, which would slow does `git annex add`. A future enhancement would be
to extend the Git.Queue to include the ability to run update-index with
a list of Streamers.
2012-06-06 14:29:10 -04:00
..
Branch.hs close the git add race 2012-06-06 14:29:10 -04:00
BranchState.hs tweak 2012-01-14 14:31:16 -04:00
CatFile.hs detect and recover from branch push/commit race 2011-12-11 20:41:35 -04:00
CheckAttr.hs rework git check-attr interface 2012-02-13 23:52:21 -04:00
Content.hs factor out nukeFile 2012-06-06 13:13:13 -04:00
Exception.hs adjust to build with monad-control-0.3 2011-12-05 22:51:37 -04:00
Journal.hs honor core.sharedRepository when making all the other files in the annex 2012-04-21 19:36:03 -04:00
LockPool.hs noop 2012-04-21 23:32:33 -04:00
Perms.hs noop 2012-04-21 23:32:33 -04:00
Queue.hs flush the git queue when a new type of action is being added to it 2012-06-04 20:41:22 -04:00
Ssh.hs Clean up handling of git directory and git worktree. 2012-05-18 17:03:12 -04:00
UUID.hs Fix use of several config settings 2012-05-05 20:16:56 -04:00
Version.hs Fix use of several config settings 2012-05-05 20:16:56 -04:00