git-annex/Annex
Joey Hess 3cd19fb4d0
use InodeCache to avoid races in import from directory special remote
This does not avoid all possible races, but it does avoid all likely
ones, and is demonstratably better than git's own handling of races
where files get modified at the same time as it's updating the working
tree.

The main thing this won't detect are not unlikely races where part
of a file gets changed while it's being copied and then the file is
restored to its original condition before the modification check.
No, it's more likely that the limitations of checking inode, size,
and mtime won't detect certian modifications, involving eg mmapped
files.
2019-03-04 13:57:23 -04:00
..
AdjustedBranch refactor getCurrentBranch 2018-10-19 17:29:18 -04:00
Branch renamings to make clean when old-format logs are being used 2019-02-21 13:43:44 -04:00
Content When annex.thin is set, allow hard links to be made between executable work tree files and annex objects. 2018-10-26 13:51:43 -04:00
LockPool add DebugLocks build flag 2018-11-19 15:02:43 -04:00
MetaData fix build with old ghc 2019-01-18 14:09:35 -04:00
View remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
Action.hs remove seemingly bogus sigINT handler stuff 2019-01-21 17:21:02 -04:00
AdjustedBranch.hs misctmp cleanup 2019-01-17 16:02:22 -04:00
AutoMerge.hs rename BlobType and add submodule to it 2018-05-14 14:45:41 -04:00
BloomFilter.hs Another redundant constraint 2016-01-28 12:34:07 -04:00
Branch.hs optimisation: use graftTree to remember the export branch 2019-02-22 11:16:22 -04:00
BranchState.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
CatFile.hs use ByteStrings when reading annex symlinks and pointers 2019-01-14 15:37:08 -04:00
ChangedRefs.hs enable LambdaCase and convert around 10% of places that could use it 2017-11-15 16:59:32 -04:00
CheckAttr.hs annex.largefiles can be configured in .gitattributes too 2016-02-02 15:18:17 -04:00
CheckIgnore.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
Common.hs finally really add back custom-setup stanza 2017-12-31 16:36:39 -04:00
Concurrent.hs fix git command queue to be concurrency safe 2018-08-28 13:16:33 -04:00
Content.hs make everything build again after ByteString Key changes 2019-01-11 16:39:46 -04:00
CurrentBranch.hs refactor getCurrentBranch 2018-10-19 17:29:18 -04:00
Difference.hs add a UUIDDesc type containing a ByteString 2019-01-01 16:17:54 -04:00
Direct.hs fix bugs involving v7 unlocked files and direct mode 2018-12-11 13:47:35 -04:00
DirHashes.hs Revert "cache the serialization of a Key" 2019-01-16 16:21:59 -04:00
Drop.hs rename key2file and file2key 2019-01-14 13:03:35 -04:00
Environment.hs removed the old Android app 2018-10-13 01:41:11 -04:00
Export.hs remove recently added cache from KeyVariety 2019-01-16 16:33:08 -04:00
FileMatcher.hs refactor magic 2019-01-23 12:40:59 -04:00
Fixup.hs add a missing import 2019-02-08 13:24:21 -04:00
GitOverlay.hs removed the old Android app 2018-10-13 01:41:11 -04:00
HashObject.hs convert Git.HashObject to use ByteStrings 2019-01-03 13:21:01 -04:00
Hook.hs don't probe support for git-annex smudge --update 2018-10-26 14:37:43 -04:00
Import.hs use InodeCache to avoid races in import from directory special remote 2019-03-04 13:57:23 -04:00
Ingest.hs misctmp cleanup 2019-01-17 16:02:22 -04:00
Init.hs init: Fix bug when direct mode needs to be enabled on a crippled filesystem, that left the repository in indirect mode. 2019-02-15 12:34:03 -04:00
InodeSentinal.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
Journal.hs misctmp cleanup 2019-01-17 16:02:22 -04:00
Link.hs avoid git warning about CRLF in restagePointerFile 2019-02-18 18:35:36 -04:00
Locations.hs add Database.ContentIdentifier 2019-02-20 16:59:10 -04:00
LockFile.hs misctmp cleanup 2019-01-17 16:02:22 -04:00
LockPool.hs pid locking configuration and abstraction layer for git-annex 2015-11-12 17:50:34 -04:00
Magic.hs fix build w/o libmagic 2019-02-09 13:49:46 -04:00
MakeRepo.hs make .noannex file prevent repo fixups 2019-02-05 14:43:23 -04:00
MetaData.hs follow-on changes from MetaData type changes 2019-01-07 15:51:05 -04:00
Multicast.hs fix build with old ghc 2017-05-10 14:39:15 -04:00
Notification.hs reorg 2017-12-14 11:26:59 -04:00
NumCopies.hs removed the old Android app 2018-10-13 01:41:11 -04:00
Path.hs remove ifdef for older base than git-annex.cabal allows 2017-12-14 13:45:50 -04:00
Perms.hs avoid compiler warning 2018-03-15 13:21:32 -04:00
Queue.hs fix git command queue to be concurrency safe 2018-08-28 13:16:33 -04:00
RemoteTrackingBranch.hs refactor RemoteTrackingBranch 2019-03-01 14:47:56 -04:00
ReplaceFile.hs misctmp cleanup 2019-01-17 16:02:22 -04:00
SpecialRemote.hs finish fixing inverted Ord for TrustLevel 2018-04-13 15:17:54 -04:00
Ssh.hs import Utility.FileSystemEncoding in Common 2019-01-03 11:37:02 -04:00
TaggedPush.hs sync: Added --cleanup, which removes local and remote synced/ branches. 2017-09-28 14:58:48 -04:00
Tmp.hs Fix race in cleanup of othertmp directory that could result in a failure attempting to access it. 2019-02-02 13:56:31 -04:00
Transfer.hs make everything build again after ByteString Key changes 2019-01-11 16:39:46 -04:00
UpdateInstead.hs sync hack to make updateInstead work on eg FAT 2017-02-17 15:21:52 -04:00
Url.hs Fix reversion in support of annex.web-options 2018-10-04 13:43:29 -04:00
UUID.hs import Utility.FileSystemEncoding in Common 2019-01-03 11:37:02 -04:00
VariantFile.hs Revert "cache the serialization of a Key" 2019-01-16 16:21:59 -04:00
VectorClock.hs marginally faster VectorClock Builder 2019-01-09 14:17:00 -04:00
Version.hs fix init in cripped filesystem version issues 2018-12-03 12:57:23 -04:00
View.hs follow-on changes from MetaData type changes 2019-01-07 15:51:05 -04:00
Wanted.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
WorkTree.hs WIP 2019-02-21 17:32:59 -04:00
YoutubeDl.hs comment typo 2018-12-30 15:51:20 -04:00