This special remote type stores file contents in a ddar repository. This provides easy de-duplication when you use git-annex to manage many files that are similar.

Unlike bup, ddar uses its own storage format, which allows for both creation and deletion of de-deduplicated files. In addition to using local storage, ddar archives can be remote, providing that ddar is installed on the remote machine and ssh is available to it.

See using ddar for usage examples.


Encryption is nominally supported, but is not useful. Since effective encryption necessarily obfuscates file contents, similar areas across different files are no longer visible to ddar and cannot be de-duplicated.


The same caveat with encryption also generally applies to compression, since file compression changes file contents such that similar regions across files no longer appear similar. An exception is gzip --rsyncable, which is specifically designed to work around this issue. This is the only compression mechanism with which de-duplication remains effective.


These parameters can be passed to git annex initremote to configure ddar:

  • encryption - One of "none", "hybrid", "shared", or "pubkey". See encryption. However, note that encryption renders all de-duplication ineffective.

  • keyid - Specifies the gpg key to use for encryption.

  • ddarrepo - Required. This is passed to ddar as the path to the ddar archive to use. If it doesn't exist, the ddar repository will be created automatically when a file is first copied to it. To use a remote ddar repository, use a colon (:) to separate the hostname from the remote path. Example: "" or "ddarrepo=/big/myddar"