git-annex/Annex
Joey Hess 04c12aa6df
custom protocol for transferrer
Rather than using Read/Show, which would force me to preserve data types
into the future.

I considered just deriving json and sending that, but I don't much like
deriving json with data types that have named constructors (like Key
does) because again it locks in data type details.

So instead, used SimpleProtocol, with a fairly complex and unreadable
protocol. But it is as efficient as the p2p protocol at least, and as
future proof.

(Writing my own custom json instances would have worked but I thought
of it too late and don't want to do all the work twice. The only real
benefit might be that aeson could be faster.)

Note that, when a new protocol request type is added later, git-annex
trying to use it will cause the git-annex transferrer to display a
protocol error message. That seems ok; it would only happen if a new
git-annex found an old version of itself in PATH or the program
file. So it's unlikely, and all it can do anyway is display an error.
(The error message could perhaps be improved..)

This commit was sponsored by Jack Hill on Patreon.
2020-12-09 16:13:59 -04:00
..
AdjustedBranch annex.adjustedbranchrefresh 2020-11-16 14:27:28 -04:00
Branch fix warning 2020-02-17 15:06:28 -04:00
Concurrent differentiate between concurrency enabled at command line and by git config 2020-09-16 11:47:12 -04:00
Content fix build on windows 2020-11-25 06:24:49 -04:00
LockPool Display a message when git-annex has to wait for a pid lock file held by another process 2020-08-26 13:05:34 -04:00
MetaData update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
SpecialRemote remove redundant imports 2020-06-22 11:05:34 -04:00
View fix test failure on windows 2020-11-26 11:48:52 -04:00
Action.hs clean up transferrer pool 2020-12-09 13:10:35 -04:00
AdjustedBranch.hs upgrade: Support an edge case upgrading a v5 direct mode repo where nothing had ever been committed to the head branch 2020-11-24 12:31:17 -04:00
AutoMerge.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
BloomFilter.hs Revert "data type that starts off using a set but converts to a bloom filter when large" 2020-07-01 20:12:19 -04:00
Branch.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
BranchState.hs cache one more log file for metadata 2020-07-07 14:18:55 -04:00
CatFile.hs cat-file resource pool 2020-04-20 15:19:31 -04:00
ChangedRefs.hs more RawFilePath conversion 2020-10-29 14:20:57 -04:00
CheckAttr.hs more RawFilePath conversion 2020-10-28 17:25:59 -04:00
CheckIgnore.hs more RawFilePath conversion 2020-11-03 10:11:04 -04:00
Common.hs finally really add back custom-setup stanza 2017-12-31 16:36:39 -04:00
Concurrent.hs clean up transferrer pool 2020-12-09 13:10:35 -04:00
Content.hs Fix build on Windows 2020-11-19 12:33:00 -04:00
CurrentBranch.hs refactor getCurrentBranch 2018-10-19 17:29:18 -04:00
Difference.hs include git-annex-shell back in 2019-12-02 11:51:52 -04:00
DirHashes.hs Added http special remote, which is useful for accessing other remotes that publish content stored in them via http/https. 2020-09-01 15:16:35 -04:00
Drop.hs more RawFilePath conversion 2020-11-03 18:34:27 -04:00
Environment.hs include git-annex-shell back in 2019-12-02 11:51:52 -04:00
Export.hs Ref ByteString conversion done 2020-04-07 17:41:09 -04:00
ExternalAddonProcess.hs WIP 2020-11-17 17:31:08 -04:00
FileMatcher.hs use MatchingKey when a Key is known 2020-11-09 15:17:22 -04:00
Fixup.hs more RawFilePath conversion 2020-10-29 10:50:29 -04:00
GitOverlay.hs more RawFilePath conversion 2020-10-29 12:03:50 -04:00
HashObject.hs more RawFilePath conversion 2020-10-28 17:25:59 -04:00
Hook.hs don't try to remove pre-commit-annex and post-update-annex-hooks 2020-10-19 13:13:49 -04:00
Import.hs refactoring 2020-12-07 14:49:17 -04:00
Ingest.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
Init.hs remove uses of warningIO 2020-12-02 14:57:43 -04:00
InodeSentinal.hs finished this stage of the RawFilePath conversion 2020-11-06 14:10:58 -04:00
Journal.hs more RawFilePath conversion 2020-10-29 12:03:50 -04:00
Link.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
Locations.hs move old direct mode stuff out of Annex.Locations 2020-11-12 12:40:35 -04:00
LockFile.hs more RawFilePath conversion 2020-10-29 10:50:29 -04:00
LockPool.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Magic.hs Serialize use of C magic library, which is not thread safe. 2020-09-17 17:27:42 -04:00
MetaData.hs wip RawFilePath 2x git-annex find speedup 2019-11-26 16:01:58 -04:00
Multicast.hs use programPath consistently, not readProgramFile 2020-03-30 16:06:27 -04:00
Notification.hs wip RawFilePath 2x git-annex find speedup 2019-11-26 16:01:58 -04:00
NumCopies.hs more RawFilePath conversion 2020-10-30 15:55:59 -04:00
Path.hs refactor out Annex.PidLock 2020-08-26 12:29:13 -04:00
Perms.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
PidLock.hs squash build warnings on windows 2020-11-23 14:00:17 -04:00
Queue.hs more RawFilePath conversion 2020-10-29 14:20:57 -04:00
RemoteTrackingBranch.hs refactor 2019-11-11 19:10:52 -04:00
ReplaceFile.hs more RawFilePath conversion 2020-10-29 12:03:50 -04:00
SpecialRemote.hs cache remote.log 2020-09-22 13:52:26 -04:00
Ssh.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
TaggedPush.hs Ref ByteString conversion done 2020-04-07 17:41:09 -04:00
Tmp.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
Transfer.hs custom protocol for transferrer 2020-12-09 16:13:59 -04:00
TransferrerPool.hs custom protocol for transferrer 2020-12-09 16:13:59 -04:00
UntrustedFilePath.hs importfeed: Fix reversion that caused some '.' in filenames to be replaced with '_' 2020-08-05 11:35:00 -04:00
UpdateInstead.hs v7 for all repositories 2019-08-30 14:09:14 -04:00
Url.hs Build with the http-client-restricted library when available 2020-06-22 11:31:31 -04:00
UUID.hs Fix a potential failure to parse git config 2020-04-13 13:05:41 -04:00
VariantFile.hs more RawFilePath 2019-12-18 17:10:28 -04:00
VectorClock.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Version.hs jump right to v8, don't stop part way 2020-02-24 13:21:00 -04:00
View.hs avoid providing filename with NUL to quickcheck properties 2020-11-06 15:15:33 -04:00
Wanted.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
WorkerPool.hs move remoteList into dupState 2020-04-17 14:36:45 -04:00
WorkTree.hs more RawFilePath conversion 2020-10-30 13:07:41 -04:00
YoutubeDl.hs converted reads from stderr to use hGetLineUntilExitOrEOF 2020-11-19 16:21:17 -04:00