git-annex/Command
Joey Hess c036a380b2
p2p ssh connection pools
Much like Remote.P2P, there's a pool of connections to a peer, in order
to support concurrent operations.

Deals with old git-annex-ssh on the remote that does not support p2pstdio,
by only trying once to use it, and remembering if it's not supported.

Made p2pstdio send an AUTH_SUCCESS with its uuid, which serves the dual
purposes of something to detect to see that the connection is working,
and a way to verify that it's connected to the right uuid.
(There's a redundant uuid check since the uuid field is sent
by git_annex_shell, but I anticipate that being removed later when
the legacy git-annex-shell stuff gets removed.)

Not entirely happy with Remote.Git.runSsh's behavior
when the proto action fails. Running the fallback will work ok, but what
will we do when the fallbacks later get removed? It might be better to
try to reconnect, in case the connection got closed.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2018-03-08 15:11:31 -04:00
..
Add.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
AddUnused.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
AddUrl.hs importfeed: Fix a failure when downloading with youtube-dl and the destination subdirectory does not exist yet. 2018-02-22 13:20:19 -04:00
Adjust.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Assistant.hs fold Build/SysConfig.hs into BuildInfo via include 2017-12-14 12:46:57 -04:00
Benchmark.hs change keys database to use IKey type with more efficient serialization 2016-01-12 14:01:50 -04:00
CalcKey.hs more lambda-case conversion 2017-12-05 15:00:50 -04:00
CheckPresentKey.hs more lambda-case conversion 2017-12-05 15:00:50 -04:00
Commit.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
Config.hs more lambda-case conversion 2017-12-05 15:00:50 -04:00
ConfigList.hs .noannex file 2017-12-13 14:34:32 -04:00
ContentLocation.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Copy.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Dead.hs more lambda-case conversion 2017-12-05 15:00:50 -04:00
Describe.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
DiffDriver.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Direct.hs more lambda-case conversion 2017-12-05 15:00:50 -04:00
Drop.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
DropKey.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
DropUnused.hs add gitAnnexTmpWorkDir and withTmpWorkDir 2017-11-29 13:53:39 -04:00
EnableRemote.hs Improve startup time for commands that do not operate on remotes 2018-01-09 16:22:07 -04:00
EnableTor.hs refactor 2018-03-06 15:14:53 -04:00
ExamineKey.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Expire.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Export.hs Display progress meter when uploading a key without size information 2017-11-14 16:40:49 -04:00
Find.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
FindRef.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Fix.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Forget.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
FromKey.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Fsck.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
FuzzTest.hs Fix several places where files in .git/annex/ were written with modes that did not take the core.sharedRepository config into account. 2018-01-02 17:25:25 -04:00
GCryptSetup.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Get.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Group.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
GroupWanted.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Help.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
Import.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
ImportFeed.hs Fix several places where files in .git/annex/ were written with modes that did not take the core.sharedRepository config into account. 2018-01-02 17:25:25 -04:00
InAnnex.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
Indirect.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Info.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Init.hs .noannex file 2017-12-13 14:34:32 -04:00
InitRemote.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Inprogress.hs inprogress: Avoid showing failures for files not in progress. 2018-01-24 20:43:19 -04:00
List.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Lock.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
LockContent.hs make sure that lockContentShared is always paired with an inAnnex check 2018-03-07 14:23:52 -04:00
Log.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
LookupKey.hs lookupkey absolute path support 2017-12-08 15:35:02 -04:00
Map.hs Improve startup time for commands that do not operate on remotes 2018-01-09 16:22:07 -04:00
MatchExpression.hs matchexpression: Added --largefiles option to parse an annex.largefiles expression. 2016-02-03 16:58:36 -04:00
Merge.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
MetaData.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Migrate.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Mirror.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Move.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Multicast.hs finally really add back custom-setup stanza 2017-12-31 16:36:39 -04:00
NotifyChanges.hs make tor hidden service work when directory watching is not available 2016-12-09 16:40:47 -04:00
NumCopies.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
P2P.hs Improve startup time for commands that do not operate on remotes 2018-01-09 16:22:07 -04:00
P2PStdIO.hs p2p ssh connection pools 2018-03-08 15:11:31 -04:00
PostReceive.hs configuration to disable automatic merge conflict resolution 2017-06-01 12:51:01 -04:00
PreCommit.hs Avoid repeated checking that files passed on the command line exist. 2017-10-16 14:10:20 -04:00
Proxy.hs finally really add back custom-setup stanza 2017-12-31 16:36:39 -04:00
ReadPresentKey.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
RecvKey.hs get, move, copy, mirror: Added --failed switch which retries failed copies/moves 2016-08-03 12:37:12 -04:00
RegisterUrl.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Reinit.hs .noannex file 2017-12-13 14:34:32 -04:00
Reinject.hs annex.securehashesonly 2017-02-27 13:33:59 -04:00
ReKey.hs rekey --force: Incorrectly marked the new key's content as being present in the local repo even when it was not. 2016-12-19 18:18:57 -04:00
RemoteDaemon.hs remotedaemon: serve tor hidden service 2016-11-20 15:48:12 -04:00
Repair.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
Required.hs started converting to use optparse-applicative 2015-07-08 13:36:25 -04:00
ResolveMerge.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
RmUrl.hs rekey: Added --batch mode. 2016-12-05 12:55:50 -04:00
Schedule.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Semitrust.hs convert all commands to work with optparse-applicative 2015-07-08 15:08:02 -04:00
SendKey.hs AssociatedFile newtype 2017-03-10 13:35:31 -04:00
SetKey.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
SetPresentKey.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Smudge.hs add KeyVariety type 2017-02-24 15:16:56 -04:00
Status.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Sync.hs fix sync bug in direct mode 2018-02-26 14:10:03 -04:00
Test.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
TestRemote.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
TransferInfo.hs AssociatedFile newtype 2017-03-10 13:35:31 -04:00
TransferKey.hs AssociatedFile newtype 2017-03-10 13:35:31 -04:00
TransferKeys.hs AssociatedFile newtype 2017-03-10 13:35:31 -04:00
Trust.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Unannex.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Undo.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Ungroup.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Uninit.hs Avoid repeated checking that files passed on the command line exist. 2017-10-16 14:10:20 -04:00
Unlock.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Untrust.hs convert all commands to work with optparse-applicative 2015-07-08 15:08:02 -04:00
Unused.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Upgrade.hs .noannex file 2017-12-13 14:34:32 -04:00
VAdd.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
VCycle.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Version.hs split BuildInfo and BuildFlags 2018-01-02 13:47:51 -04:00
VFilter.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Vicfg.hs make git annex config settings editable in vicfg 2017-01-30 17:08:05 -04:00
View.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
VPop.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Wanted.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Watch.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
WebApp.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Whereis.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00