git-annex/Assistant
Joey Hess 6c565ec905 external special remotes mostly implemented (untested)
This has not been tested at all. It compiles!

The only known missing things are support for encryption, and for get/set
of special remote configuration, and of key state. (The latter needs
separate work to add a new per-key log file to store that state.)

Only thing I don't much like is that initremote needs to be passed both
type=external and externaltype=foo. It would be better to have just
type=foo

Most of this is quite straightforward code, that largely wrote itself given
the types. The only tricky parts were:

* Need to lock the remote when using it to eg make a request, because
  in theory git-annex could have multiple threads that each try to use
  a remote at the same time. I don't think that git-annex ever does
  that currently, but better safe than sorry.

* Rather than starting up every external special remote program when
  git-annex starts, they are started only on demand, when first used.
  This will avoid slowdown, especially when running fast git-annex query
  commands. Once started, they keep running until git-annex stops, currently,
  which may not be ideal, but it's hard to know a better time to stop them.

* Bit of a chicken and egg problem with caching the cost of the remote,
  because setting annex-cost in the git config needs the remote to already
  be set up. Managed to finesse that.

This commit was sponsored by Lukas Anzinger.
2013-12-26 18:23:13 -04:00
..
Alert restart on upgrade is working, including automatic restart 2013-11-23 00:54:08 -04:00
Install squash warning in OSX build 2013-12-15 17:10:24 -04:00
Pairing external special remotes mostly implemented (untested) 2013-12-26 18:23:13 -04:00
Threads assistant: Set StrictHostKeyChecking yes when creating ssh remotes, and add it to the configuration for any ssh remotes previously created by the assistant. This avoids repeated prompts by ssh if the host key changes, instead syncing with such a remote will fail. Closes: #732602 2013-12-20 20:58:36 -04:00
Types queue and start download of git-annex from web, using git-annex, when upgrade is started 2013-11-23 17:21:04 -04:00
WebApp external special remotes mostly implemented (untested) 2013-12-26 18:23:13 -04:00
XMPP When an XMPP server has SRV records, try them, but don't then fall back to the regular host if they all fail. 2013-07-20 21:18:55 -04:00
Alert.hs cleanup on failed upgrade 2013-11-24 14:04:03 -04:00
BranchChange.hs
Changes.hs use DList for the transfer queue 2013-04-25 01:33:44 -04:00
Commits.hs remove last use of TSet 2013-04-24 17:16:04 -04:00
Common.hs refactor alert button creation code 2013-04-04 01:48:26 -04:00
DaemonStatus.hs half way complete cronner thread to run scheduled activities 2013-10-08 11:48:28 -04:00
DeleteRemote.hs add config page for fsck, and alert with button when a fsck is running 2013-10-10 18:05:53 -04:00
Drop.hs moved AssociatedFile definition 2013-07-04 02:36:02 -04:00
Fsck.hs webapp: remind user when using repositories that lack consistency checks 2013-10-29 16:50:38 -04:00
Gpg.hs webapp: Support storing encrypted git repositories on rsync.net. 2013-09-26 16:43:00 -04:00
Install.hs assistant: Set StrictHostKeyChecking yes when creating ssh remotes, and add it to the configuration for any ssh remotes previously created by the assistant. This avoids repeated prompts by ssh if the host key changes, instead syncing with such a remote will fail. Closes: #732602 2013-12-20 20:58:36 -04:00
MakeRemote.hs webapp: Improve UI around remote that have no annex.uuid set, either because setup of them is incomplete, or because the remote git repository is not a git-annex repository. 2013-11-07 18:02:00 -04:00
Monad.hs Another round of s/amoung/among/ 2013-12-19 12:30:53 -04:00
NamedThread.hs restart on upgrade is working, including automatic restart 2013-11-23 00:54:08 -04:00
NetMessager.hs clarify notifyNetMessagerRestart 2013-08-24 13:49:04 -04:00
Pairing.hs Improve local pairing behavior when two computers both try to start the pairing process separately. 2013-11-02 15:10:29 -04:00
Pushes.hs whitespace fixes 2012-12-13 00:45:27 -04:00
Repair.hs assistant: Fix OSX-specific bug that caused the startup scan to try to follow symlinks to other directories, and add their contents to the annex. 2013-12-18 15:05:29 -04:00
RepoProblem.hs add post-repair actions 2013-10-29 14:25:20 -04:00
Restart.hs pull in Win32-extras, to be able to get current process id in Windows 2013-12-11 00:15:10 -04:00
ScanRemotes.hs where indentation 2012-10-31 02:34:03 -04:00
Ssh.hs assistant: Set StrictHostKeyChecking yes when creating ssh remotes, and add it to the configuration for any ssh remotes previously created by the assistant. This avoids repeated prompts by ssh if the host key changes, instead syncing with such a remote will fail. Closes: #732602 2013-12-20 20:58:36 -04:00
Sync.hs add post-repair actions 2013-10-29 14:25:20 -04:00
TransferQueue.hs use DList for the transfer queue 2013-04-25 01:33:44 -04:00
TransferrerPool.hs port transferkeys to windows; make stopping in progress transfers work too (probably) 2013-12-10 23:19:18 -04:00
TransferSlots.hs typo 2013-12-10 23:55:15 -04:00
Upgrade.hs one more wrong dir 2013-11-25 14:52:04 -04:00
WebApp.hs clean up build warnings with yesod 1.2, while still building with 1.1 2013-06-27 01:15:28 -04:00
XMPP.hs allow to build when sandi is installed (don't use it yet) 2013-11-11 15:42:06 -04:00