git-annex/Command
Joey Hess 7294d23d78
export: Added --from option
This is similar to git-annex copy --from --to, in that it downloads a
local copy, locks it for removal, uploads it, and drops it. Removal of
the temporary local copy is done without verifying numcopies for the
same reason as that command.

I do wonder, looking at this, if there's a race where the local copy
gets used as a copy to allow some other drop in the narrow window after
it is downloaded and before it gets locked for removal. That would need
some other repository to have an out of date location log that says the
repository contains a copy of the key, in order for it to try to use it
as a copy. If there is such a race, git-annex copy/move would also be
vulnerable to it. It would be better to lock it for removal before
starting to download it! That is possible in v10 repositories, which do
use a separate content lock file.

Note that, when the exported tree contains several files that use the
same key, it will be downloaded repeatedly, once per time needed to
upload it. It would be possible to avoid that extra work, but it would
complicate this since the local copy would need to be preserved, locked
for removal, until the end. Also, that would mean that interrupting the
export would leave possibly a lot of temporarily downloaded keys in the
local repository, while currently it can only leave one.
2024-08-08 12:08:55 -04:00
..
Add.hs git-annex assist 2023-05-18 14:37:43 -04:00
AddUnused.hs addunused, dropunused: Support --json and --json-error-messages 2023-05-05 14:01:40 -04:00
AddUrl.hs support VURL backend 2024-02-29 13:48:51 -04:00
Adjust.hs rename to --unlock-present and better reverse adjusting 2020-11-13 14:56:43 -04:00
Assist.hs assist: With --jobs, parallelize transferring content to/from remotes 2023-07-05 12:47:30 -04:00
Assistant.hs remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
Benchmark.hs improve benchmark --databases 2019-11-21 17:25:20 -04:00
CalcKey.hs safe output to terminal for calckey inprogress and lookupkey 2023-04-12 14:03:44 -04:00
CheckPresentKey.hs fix --from overriding annex-ignore 2023-11-30 15:12:07 -04:00
Config.hs config: Added the --show-origin and --for-file options 2023-06-12 16:24:31 -04:00
ConfigList.hs remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
ConfigRemote.hs configremote: Support --json and --json-error-messages 2023-05-10 14:21:42 -04:00
ContentLocation.hs add SeekInput (not yet used) 2020-09-15 15:41:13 -04:00
Copy.hs add startAction parameter for KeySha 2023-12-06 13:28:02 -04:00
Dead.hs Tab completion of many commands like info and trust now includes remotes 2024-06-30 12:39:18 -04:00
Describe.hs Tab completion of many commands like info and trust now includes remotes 2024-06-30 12:39:18 -04:00
DiffDriver.hs fix some build warnings from ghc 9.4.6 2023-09-21 13:38:36 -04:00
Direct.hs Automatically convert direct mode repositories to v7 with adjusted unlocked branches 2019-08-26 15:05:25 -04:00
Drop.hs toward SafeDropProof expiry checking 2024-07-04 12:39:06 -04:00
DropKey.hs remove --backend from global options 2022-06-29 13:33:25 -04:00
DropUnused.hs dropunused: Support --jobs 2023-07-21 14:03:34 -04:00
EnableRemote.hs initremote, enableremote: Added --with-url to enable using git-remote-annex 2024-05-24 14:29:36 -04:00
EnableTor.hs support a P2PConnection that uses TMVars rather than Handles 2024-06-28 11:22:29 -04:00
ExamineKey.hs implement URL to VURL migration 2024-03-01 16:42:02 -04:00
Expire.hs newtype MapLog 2023-11-13 14:37:22 -04:00
Export.hs export: Added --from option 2024-08-08 12:08:55 -04:00
ExtendCluster.hs use annex+http for accessing proxies 2024-07-25 12:00:57 -04:00
FilterBranch.hs multiple -m second try 2024-04-09 12:56:47 -04:00
FilterProcess.hs smudge: Warn when encountering a pointer file that has other content appended to it 2022-02-23 15:17:08 -04:00
Find.hs add startAction parameter for KeySha 2023-12-06 13:28:02 -04:00
FindKeys.hs add startAction parameter for KeySha 2023-12-06 13:28:02 -04:00
FindRef.hs remove --backend from global options 2022-06-29 13:33:25 -04:00
Fix.hs add startAction parameter for KeySha 2023-12-06 13:28:02 -04:00
Forget.hs filter out control characters in all other Messages 2023-04-11 12:58:01 -04:00
FromKey.hs support VURL backend 2024-02-29 13:48:51 -04:00
Fsck.hs toward SafeDropProof expiry checking 2024-07-04 12:39:06 -04:00
FuzzTest.hs eliminate showStart showStartOther 2023-04-10 16:28:58 -04:00
GCryptSetup.hs eliminate s2w8 and w82s 2023-10-26 13:12:57 -04:00
Get.hs dropping from clusters 2024-06-23 09:43:40 -04:00
Group.hs Tab completion of many commands like info and trust now includes remotes 2024-06-30 12:39:18 -04:00
GroupWanted.hs git style quoting for ActionItemOther 2023-04-08 16:30:01 -04:00
Help.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Import.hs dropping from clusters 2024-06-23 09:43:40 -04:00
ImportFeed.hs run codespell throughout fixing typos automagically 2024-05-01 15:46:21 -04:00
InAnnex.hs add SeekInput (not yet used) 2020-09-15 15:41:13 -04:00
Indirect.hs Automatically convert direct mode repositories to v7 with adjusted unlocked branches 2019-08-26 15:05:25 -04:00
Info.hs Tab completion of many commands like info and trust now includes remotes 2024-06-30 12:39:18 -04:00
Init.hs remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
InitCluster.hs broke out initcluster 2024-06-14 17:23:11 -04:00
InitRemote.hs git-remote-annex: Display full url when using remote with the shorthand url 2024-05-24 17:15:31 -04:00
Inprogress.hs add startAction parameter for KeySha 2023-12-06 13:28:02 -04:00
List.hs add startAction parameter for KeySha 2023-12-06 13:28:02 -04:00
Lock.hs add startAction parameter for KeySha 2023-12-06 13:28:02 -04:00
Log.hs run codespell throughout fixing typos automagically 2024-05-01 15:46:21 -04:00
LookupKey.hs lookupkey: Sped up --batch 2023-10-30 14:59:09 -04:00
Map.hs filter out control characters in all other Messages 2023-04-11 12:58:01 -04:00
MatchExpression.hs --explain for preferred/required content matching 2023-07-26 14:50:04 -04:00
Merge.hs sync: When in an adjusted branch, merge changes from the original branch 2023-07-06 12:42:24 -04:00
MetaData.hs add startAction parameter for KeySha 2023-12-06 13:28:02 -04:00
Migrate.hs Fix one ambigous typo 2024-05-01 15:46:15 -04:00
MinCopies.hs git style quoting for ActionItemOther 2023-04-08 16:30:01 -04:00
Mirror.hs add startAction parameter for KeySha 2023-12-06 13:28:02 -04:00
Move.hs toward SafeDropProof expiry checking 2024-07-04 12:39:06 -04:00
Multicast.hs json object for FileNotFound 2023-04-25 19:26:20 -04:00
NotifyChanges.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
NumCopies.hs git style quoting for ActionItemOther 2023-04-08 16:30:01 -04:00
OldKeys.hs oldkeys: check associated files by default and add --unchecked 2023-08-23 13:46:41 -04:00
P2P.hs git-annex-shell: block relay requests 2024-06-10 14:16:27 -04:00
P2PHttp.hs run with noMessages 2024-07-29 13:35:08 -04:00
P2PStdIO.hs clean up protocol version for proxying 2024-07-26 13:49:05 -04:00
PostReceive.hs export: Added --from option 2024-08-08 12:08:55 -04:00
PreCommit.hs pre-commit: Avoid committing the git-annex branch 2024-02-12 14:42:11 -04:00
Proxy.hs Automatically convert direct mode repositories to v7 with adjusted unlocked branches 2019-08-26 15:05:25 -04:00
Pull.hs git-annex pull and push 2023-05-16 16:51:07 -04:00
Push.hs git-annex pull and push 2023-05-16 16:51:07 -04:00
ReadPresentKey.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
RecvKey.hs disk free checking for unsized keys 2024-01-16 14:29:10 -04:00
RegisterUrl.hs filter out control characters in all other Messages 2023-04-11 12:58:01 -04:00
Reinit.hs remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
Reinject.hs disk free checking for unsized keys 2024-01-16 14:29:10 -04:00
ReKey.hs always verify content in distributed migration 2023-12-07 20:05:42 -04:00
RemoteDaemon.hs fix build with unix-2.8.0 2023-08-01 18:41:27 -04:00
RenameRemote.hs renameremote: Support --json and --json-error-messages 2023-05-08 16:25:40 -04:00
Repair.hs move several readonly values to AnnexRead 2022-06-28 15:40:19 -04:00
Required.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
ReregisterUrl.hs add reregisterurl command 2024-03-05 15:06:14 -04:00
ResolveMerge.hs filter out control characters in error messages 2023-04-10 13:50:51 -04:00
Restage.hs restage: New git-annex command, handles restaging unlocked files 2022-09-23 16:29:59 -04:00
RmUrl.hs rmurl: Support --json and --json-error-messages 2023-05-04 11:28:27 -04:00
Satisfy.hs added git-annex satisfy 2023-06-29 15:34:53 -04:00
Schedule.hs filter out control characters and quote filenames 2023-04-11 14:27:22 -04:00
Semitrust.hs Tab completion of many commands like info and trust now includes remotes 2024-06-30 12:39:18 -04:00
SendKey.hs add optional object file location to storeKey 2024-07-01 10:42:27 -04:00
SetKey.hs disk free checking for unsized keys 2024-01-16 14:29:10 -04:00
SetPresentKey.hs rekey, setpresentkey: Support --json and --json-error-messages 2023-05-04 16:03:54 -04:00
Smudge.hs filter out control characters in warning messages 2023-04-10 15:55:44 -04:00
Status.hs filter out control characters and quote filenames 2023-04-11 14:27:22 -04:00
Sync.hs export: Added --from option 2024-08-08 12:08:55 -04:00
Test.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
TestRemote.hs toward SafeDropProof expiry checking 2024-07-04 12:39:06 -04:00
TransferKey.hs add optional object file location to storeKey 2024-07-01 10:42:27 -04:00
TransferKeys.hs add optional object file location to storeKey 2024-07-01 10:42:27 -04:00
Transferrer.hs add optional object file location to storeKey 2024-07-01 10:42:27 -04:00
Trust.hs Tab completion of many commands like info and trust now includes remotes 2024-06-30 12:39:18 -04:00
Unannex.hs add startAction parameter for KeySha 2023-12-06 13:28:02 -04:00
Undo.hs move commitStaged out of Command.Sync which no longer uses it 2024-02-07 16:19:28 -04:00
Ungroup.hs Tab completion of many commands like info and trust now includes remotes 2024-06-30 12:39:18 -04:00
Uninit.hs fix empty tree import when directory does not exist 2023-08-15 12:57:41 -04:00
Unlock.hs add startAction parameter for KeySha 2023-12-06 13:28:02 -04:00
UnregisterUrl.hs restore old registerurl location tracking behavior 2023-04-05 17:06:44 -04:00
Untrust.hs Tab completion of many commands like info and trust now includes remotes 2024-06-30 12:39:18 -04:00
Unused.hs Tab completion of many commands like info and trust now includes remotes 2024-06-30 12:39:18 -04:00
UpdateCluster.hs updateproxy, updatecluster check annexobjects=yes 2024-08-07 12:27:24 -04:00
UpdateProxy.hs updateproxy, updatecluster check annexobjects=yes 2024-08-07 12:27:24 -04:00
Upgrade.hs remove dead nodes when loading the cluster log 2024-06-16 14:39:44 -04:00
VAdd.hs filter out control characters in all other Messages 2023-04-11 12:58:01 -04:00
VCycle.hs filter out control characters in all other Messages 2023-04-11 12:58:01 -04:00
Version.hs version: Avoid error message when entire output is not read 2023-05-19 15:00:57 -04:00
VFilter.hs understand adjusted view branch names 2023-02-27 14:57:58 -04:00
Vicfg.hs vicfg: Include mincopies configuration 2022-09-15 15:11:59 -04:00
View.hs filter out control characters in all other Messages 2023-04-11 12:58:01 -04:00
VPop.hs git style quoting for ActionItemOther 2023-04-08 16:30:01 -04:00
Wanted.hs Tab completion of many commands like info and trust now includes remotes 2024-06-30 12:39:18 -04:00
Watch.hs webapp: Added --port option, and annex.port config 2024-01-25 14:08:36 -04:00
WebApp.hs webapp: Added --port option, and annex.port config 2024-01-25 14:08:36 -04:00
Whereis.hs don't count clusters as copies 2024-06-16 14:17:56 -04:00
WhereUsed.hs add startAction parameter for KeySha 2023-12-06 13:28:02 -04:00