git-annex/Annex
Joey Hess d2b27ca136
add content retention files
This allows lockContentShared to lock content for eg, 10 minutes and
if the process then gets terminated before it can unlock, the content
will remain locked for that amount of time.

The Windows implementation is not yet tested.

In P2P.Annex, a duration of 10 minutes is used. This way, when p2pstdio
or remotedaemon is serving the P2P protocol, and is asked to
LOCKCONTENT, and that process gets killed, the content will not be
subject to deletion. This is not a perfect solution to
doc/todo/P2P_locking_connection_drop_safety.mdwn yet, but it gets most
of the way there, without needing any P2P protocol changes.

This is only done in v10 and higher repositories (or on Windows). It
might be possible to backport it to v8 or earlier, but it would
complicate locking even further, and without a separate lock file, might
be hard. I think that by the time this fix reaches a given user, they
will probably have been running git-annex 10.x long enough that their v8
repositories will have upgraded to v10 after the 1 year wait. And it's
not as if git-annex hasn't already been subject to this problem (though
I have not heard of any data loss caused by it) for 6 years already, so
waiting another fraction of a year on top of however long it takes this
fix to reach users is unlikely to be a problem.
2024-07-03 14:58:39 -04:00
..
AdjustedBranch multiple -m second try 2024-04-09 12:56:47 -04:00
Branch newtype MapLog 2023-11-13 14:37:22 -04:00
Concurrent
Content disk free checking for unsized keys 2024-01-16 14:29:10 -04:00
Debug
LockPool avoid annexFileMode special case 2023-04-27 15:58:37 -04:00
MetaData sqlite datbase for importfeed 2023-10-23 16:46:22 -04:00
SpecialRemote git-remote-annex: Display full url when using remote with the shorthand url 2024-05-24 17:15:31 -04:00
VectorClock Lower precision of timestamps in git-annex branch 2023-12-11 15:04:06 -04:00
View annex.maxextensions configuration 2024-04-18 14:23:38 -04:00
Action.hs remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
AdjustedBranch.hs adjust unlocked execute bit handling 2024-05-28 12:39:42 -04:00
AutoMerge.hs push RawFilePath down into Annex.ReplaceFile 2023-10-26 13:36:49 -04:00
BloomFilter.hs filter out control characters in warning messages 2023-04-10 15:55:44 -04:00
Branch.hs Avoid grafting in export tree objects that are missing 2024-06-07 16:51:50 -04:00
BranchState.hs disable journalIgnorable in enableInteractiveBranchAccess 2022-07-15 13:48:41 -04:00
CatFile.hs read a consistent amount from pointer file 2022-02-23 12:52:34 -04:00
ChangedRefs.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
CheckAttr.hs config: Added the --show-origin and --for-file options 2023-06-12 16:24:31 -04:00
CheckIgnore.hs move several readonly values to AnnexRead 2022-06-28 15:40:19 -04:00
Cluster.hs fix build on old ghc 2024-07-02 12:27:14 -04:00
Common.hs avoid build warning on windows 2024-03-26 13:16:33 -04:00
Concurrent.hs use ResourcePool for hash-object handles 2022-07-25 17:32:39 -04:00
Content.hs add content retention files 2024-07-03 14:58:39 -04:00
CopyFile.hs RawFilePath conversion 2024-01-19 14:26:21 -04:00
CurrentBranch.hs
Debug.hs display explanations in --debug too 2023-07-31 13:06:40 -04:00
Difference.hs filter out control characters in warning messages 2023-04-10 15:55:44 -04:00
DirHashes.hs
Drop.hs don't count clusters as copies, continued 2024-06-16 15:14:53 -04:00
Environment.hs improve comments 2023-04-04 15:23:39 -04:00
Export.hs rename Git.Filename to Git.Quote 2023-04-12 17:22:03 -04:00
ExternalAddonProcess.hs startExternalAddonProcess add parameters 2024-04-17 13:09:10 -04:00
FileMatcher.hs importtree: support preferred content expressions needing keys 2023-12-18 16:27:59 -04:00
Fixup.hs
GitOverlay.hs filter out control characters in error messages 2023-04-10 13:50:51 -04:00
HashObject.hs use ResourcePool for hash-object handles 2022-07-25 17:32:39 -04:00
Hook.hs filter out control characters in warning messages 2023-04-10 15:55:44 -04:00
Import.hs multiple -m second try 2024-04-09 12:56:47 -04:00
Ingest.hs log migration trees to git-annex branch 2023-12-06 15:40:03 -04:00
Init.hs remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
InodeSentinal.hs fix perms for core.sharedRepository 2023-04-26 16:29:11 -04:00
Journal.hs clean up git-remote-annex git-annex branch handling 2024-05-15 17:33:38 -04:00
Link.hs fix hang when built with unix-2.8 2023-08-01 20:22:28 -04:00
Locations.hs add content retention files 2024-07-03 14:58:39 -04:00
LockFile.hs avoid annexFileMode special case 2023-04-27 15:58:37 -04:00
LockPool.hs
Magic.hs
MetaData.hs filter out control characters in warning messages 2023-04-10 15:55:44 -04:00
Multicast.hs
Notification.hs fix build when dbus is enabled 2022-07-05 13:06:45 -04:00
NumCopies.hs add content retention files 2024-07-03 14:58:39 -04:00
Path.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
Perms.hs avoid annexFileMode special case 2023-04-27 15:58:37 -04:00
PidLock.hs fix windows build 2022-09-26 12:08:04 -04:00
Proxy.hs fix display when proxied GET yields ERROR 2024-07-01 11:19:02 -04:00
Queue.hs add restage log 2022-09-23 15:47:24 -04:00
RemoteTrackingBranch.hs run codespell throughout fixing typos automagically 2024-05-01 15:46:21 -04:00
ReplaceFile.hs push RawFilePath down into Annex.ReplaceFile 2023-10-26 13:36:49 -04:00
SpecialRemote.hs init: Avoid autoenabling special remotes that have control characters in their names 2023-04-12 12:37:12 -04:00
Ssh.hs run codespell throughout fixing typos automagically 2024-05-01 15:46:21 -04:00
StallDetection.hs add directional stalldetection and bwlimit configs 2024-01-19 15:27:53 -04:00
Startup.hs be quiet when reading cluster and proxy information at startup 2024-06-18 21:31:32 -04:00
TaggedPush.hs simplify base64 to only use ByteString 2023-10-26 13:10:05 -04:00
Tmp.hs fix empty tree import when directory does not exist 2023-08-15 12:57:41 -04:00
Transfer.hs add optional object file location to storeKey 2024-07-01 10:42:27 -04:00
TransferrerPool.hs avoid build warning on windows 2023-03-27 12:19:26 -04:00
UntrustedFilePath.hs fix mojibake reversion in display of utf8 2023-04-12 13:53:30 -04:00
UpdateInstead.hs
Url.hs avoid unncessary use of curl when conduit will do 2023-08-22 10:25:53 -04:00
UUID.hs proxying GET now working 2024-06-11 15:09:43 -04:00
VariantFile.hs
VectorClock.hs
Verify.hs handle multiple VURL checksums in one pass 2024-03-01 14:41:10 -04:00
Version.hs v8 repositories automatically upgrade to v9 2022-07-25 16:20:04 -04:00
View.hs annex.maxextensions configuration 2024-04-18 14:23:38 -04:00
Wanted.hs new matching options --want-get-by and --want-drop-by 2022-07-28 13:26:03 -04:00
WorkerPool.hs
WorkTree.hs use lookupKeyStaged in --batch code paths 2022-10-26 14:43:06 -04:00
YoutubeDl.hs run codespell throughout fixing typos automagically 2024-05-01 15:46:21 -04:00