git-annex/Command
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
..
Add.hs close the git add race 2012-06-06 14:29:10 -04:00
AddUnused.hs addunused: New command, the opposite of dropunused, it relinks unused content into the git repository. 2012-05-02 14:59:05 -04:00
AddUrl.hs separate source of content from the filename associated with the key when generating a key 2012-06-05 19:51:03 -04:00
Commit.hs ignore hook exit status 2012-03-14 12:41:00 -04:00
ConfigList.hs set oneshot mode on a per-command basis 2012-02-14 12:40:40 -04:00
Copy.hs rework git check-attr interface 2012-02-13 23:52:21 -04:00
Dead.hs add 2011-12-02 19:22:43 -04:00
Describe.hs lint 2011-11-11 01:52:58 -04:00
Drop.hs hlint 2012-02-16 00:44:51 -04:00
DropKey.hs set oneshot mode on a per-command basis 2012-02-14 12:40:40 -04:00
DropUnused.hs factor out nukeFile 2012-06-06 13:13:13 -04:00
Find.hs fun with symbols 2012-03-17 00:38:40 -04:00
Fix.hs type alias cleanup 2011-12-31 04:11:58 -04:00
FromKey.hs lint 2011-11-11 01:52:58 -04:00
Fsck.hs use createAnnexDirectory when setting up tmp dir 2012-06-05 20:25:32 -04:00
Get.hs added ifM and nuked 11 lines of code 2012-03-14 17:43:34 -04:00
Import.hs import: New subcommand, pulls files from a directory outside the annex and adds them 2012-05-31 19:47:18 -04:00
InAnnex.hs set oneshot mode on a per-command basis 2012-02-14 12:40:40 -04:00
Init.hs init: When run in an already initalized repository, and without a description specified, don't delete the old description. 2011-11-12 15:42:52 -04:00
InitRemote.hs type alias cleanup 2011-12-31 04:11:58 -04:00
Lock.hs lock: Reset unlocked file to index, rather than to branch head. 2012-05-30 17:01:22 -04:00
Log.hs Clean up handling of git directory and git worktree. 2012-05-18 17:03:12 -04:00
Map.hs Clean up handling of git directory and git worktree. 2012-05-18 17:03:12 -04:00
Merge.hs improve alwayscommit=false mode 2012-02-25 16:18:55 -04:00
Migrate.hs separate source of content from the filename associated with the key when generating a key 2012-06-05 19:51:03 -04:00
Move.hs added ifM and nuked 11 lines of code 2012-03-14 17:43:34 -04:00
PreCommit.hs added ifM and nuked 11 lines of code 2012-03-14 17:43:34 -04:00
RecvKey.hs set oneshot mode on a per-command basis 2012-02-14 12:40:40 -04:00
Reinject.hs hlint 2012-02-16 00:44:51 -04:00
ReKey.hs variable name 2012-02-17 00:21:35 -04:00
Semitrust.hs clean up check selection code 2011-10-29 15:19:05 -04:00
SendKey.hs set oneshot mode on a per-command basis 2012-02-14 12:40:40 -04:00
Status.hs percentage library 2012-04-29 17:48:07 -04:00
Sync.hs sync: Show a nicer message if a user tries to sync to a special remote. 2012-05-27 20:55:56 -04:00
Trust.hs clean up check selection code 2011-10-29 15:19:05 -04:00
Unannex.hs Support git's core.sharedRepository configuration 2012-04-21 15:36:52 -04:00
Uninit.hs support all filename encodings with ghc 7.4 2012-02-03 16:23:20 -04:00
Unlock.hs better file mode setting code 2012-04-21 16:01:56 -04:00
Untrust.hs clean up check selection code 2011-10-29 15:19:05 -04:00
Unused.hs Clean up handling of git directory and git worktree. 2012-05-18 17:03:12 -04:00
Upgrade.hs clean up check selection code 2011-10-29 15:19:05 -04:00
Version.hs set oneshot mode on a per-command basis 2012-02-14 12:40:40 -04:00
Watch.hs close the git add race 2012-06-06 14:29:10 -04:00
Whereis.hs noop 2012-04-21 23:32:33 -04:00