rclone special remote

Added rclone special remote, which can be used without needing to install
the git-annex-remote-rclone program. This needs a new version of rclone,
which supports "rclone gitannex".

This is implemented as a variant of an external special remote, that
runs "rclone gitannex" instead of the usual git-annex-remote- command.
Parameterized Remote.External to support that.

Sponsored-by: Luke T. Shumaker on Patreon
This commit is contained in:
Joey Hess 2024-04-17 15:19:42 -04:00
parent 5c542c0382
commit d372553540
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
10 changed files with 114 additions and 48 deletions

View file

@ -1794,6 +1794,11 @@ Remotes are configured using these settings in `.git/config`.
Used to identify Amazon Glacier special remotes.
Normally this is automatically set up by `git annex initremote`.
* `remote.<name>.annex-rclone`
Used to identify rclone special remotes.
Normally this is automatically set up by `git annex initremote`.
* `remote.<name>.annex-web`
Used to identify web special remotes.
@ -1832,7 +1837,7 @@ Remotes are configured using these settings in `.git/config`.
* `remote.<name>.annex-externaltype`
Used external special remotes to record the type of the remote.
Used by external special remotes to record the type of the remote.
Eg, if this is set to "foo", git-annex will run a "git-annex-remote-foo"
program to communicate with the external special remote.

View file

@ -26,6 +26,7 @@ the git history is not stored in them.
* [[git]]
* [[httpalso]]
* [[borg]]
* [[rclone]]
The above special remotes are built into git-annex, and can be used
to tie git-annex into many cloud services.

View file

@ -26,12 +26,12 @@ the time of writing, this includes the following services:
That list is regularly expanding.
git-annex supports all of those through
the use of the [rclone special remote](https://github.com/DanielDent/git-annex-remote-rclone).
There are two ways to use rclone as a git-annex special remote.
Alternatively, rclone recently gained support for being used as a special
remote on its own, without needing installation of the above program.
For documentation on using rclone that way, see the output of
`rclone gitannex -h` or [here](//github.com/rclone/rclone/blob/master/cmd/gitannex/gitannex.md).
1. Install [git-annex-remote-rclone](https://github.com/DanielDent/git-annex-remote-rclone).
This will work with any versions of rclone and git-annex.
2. With a recent version of rclone and git-annex, it is not necessary to
install anything else, just use `git-annex initremote type=rclone ...`
See their documentation for more concrete examples.
For documentation on using rclone that way, see the output of
`rclone gitannex -h` or [here](https://github.com/rclone/rclone/blob/master/cmd/gitannex/gitannex.md).

View file

@ -44,3 +44,5 @@ a wrapper around the external special remote, that makes it use
> I feel that the simplicity of the type=rclone config will pay off in the
> long term, vs short term complication for probably a small subset of users
> who somehow can upgrade rclone but can't upgrade git-annex. --[[Joey]]
> > [[done]]