rclone/cmd/gitannex/gitannex.md
Dan McArdle dac7f76b14 cmd/gitannex: Update command docs
Mentioned the possibility of skipping the symlink for new versions of
git-annex. (Probably deserves a test once the new git-annex trickles
down to CI platforms.)

I stopped trying to explain each config parameter here. Rather, the doc
now shows the user how to ask git-annex to describe config parameters
with `--whatelse`.
2024-06-06 17:42:27 +01:00

2.4 KiB

Rclone's gitannex subcommand enables git-annex to store and retrieve content from an rclone remote. It is meant to be run by git-annex, not directly by users.

Installation on Linux

  1. Skip this step if your version of git-annex is 10.20240430 or newer. Otherwise, you must create a symlink somewhere on your PATH with a particular name. This symlink helps git-annex tell rclone it wants to run the "gitannex" subcommand.

    # Create the helper symlink in "$HOME/bin".
    ln -s "$(realpath rclone)" "$HOME/bin/git-annex-remote-rclone-builtin"
    
    # Verify the new symlink is on your PATH.
    which git-annex-remote-rclone-builtin
    
  2. Add a new remote to your git-annex repo. This new remote will connect git-annex with the rclone gitannex subcommand.

    Start by asking git-annex to describe the remote's available configuration parameters.

    # If you skipped step 1:
    git annex initremote MyRemote type=rclone --whatelse
    
    # If you created a symlink in step 1:
    git annex initremote MyRemote type=external externaltype=rclone-builtin --whatelse
    

    NOTE: If you're porting an existing git-annex-remote-rclone remote to use rclone gitannex, you can probably reuse the configuration parameters verbatim without renaming them. Check parameter synonyms with --whatelse as shown above.

    The following example creates a new git-annex remote named "MyRemote" that will use the rclone remote named "SomeRcloneRemote". That rclone remote must be one configured in your rclone.conf file, which can be located with rclone config file.

    git annex initremote MyRemote         \
        type=external                     \
        externaltype=rclone-builtin       \
        encryption=none                   \
        rcloneremotename=SomeRcloneRemote \
        rcloneprefix=git-annex-content    \
        rclonelayout=nodir
    
  3. Before you trust this command with your precious data, be sure to test the remote. This command is very new and has not been tested on many rclone backends. Caveat emptor!

    git annex testremote MyRemote
    

Happy annexing!