Another special remote that git-annex can use is a ddar repository. ddar stores large file contents in a directory structure of its own, with deduplication. For remote repositories, ddar requires that ssh is available on the remote, with ddar also installed remotely. When copying files to the remote, ddar only needs to send over the network the parts of the files that are not already present remotely.

Unlike bup, ddar uses its own storage format, which allows for both creation and deletion of de-deduplicated files.

Here's how to create a ddar remote, and describe it.

Instead of specifying a remote system, you could choose to make a ddar remote that is only accessible on the current system, by passing "ddarrepo=/big/myddar".

$ git annex initremote myddar type=ddar encryption=none
initremote ddar (ddar init)
Initialized empty Git repository in /big/myddar/
$ git annex describe myddar "my ddar repository at"
describe myddar ok

Now the remote can be used like any other remote.

$ git annex move my_cool_big_file --to myddar
move my_cool_big_file (to myddar...)

See ddar for details.