aboutsummaryrefslogtreecommitdiff
path: root/doc/special_remotes/bup.mdwn
blob: ca505691751b37140b952f7ebefb371d0c7325d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
This special remote type stores file contents in a 
[bup](http://github.com/bup/bup) repository. By using git-annex
in the front-end, and bup as a remote, you get an easy git-style
interface to large files, and easy backups of the file contents using git.

This is particularly well suited to collaboration on projects involving
large files, since both the git-annex and bup repositories can be
accessed like any other git repository.

See [[walkthrough/using_bup]] for usage examples.

Each individual key is stored in a bup remote using `bup split`, with
a git branch named the same as the key name. Content is retrieved from
bup using `bup join`. All other bup operations are up to you -- consider
running `bup fsck --generate` in a cron job to generate recovery blocks,
for example; or clone bup's git repository to further back it up.

## configuration

These parameters can be passed to `git annex initremote` to configure bup:

* `buprepo` - Required. This is passed to `bup` as the `--remote`
  to use to store data. To create the repository,`bup init` will be run.
  Example: "buprepo=example.com:/big/mybup" or "buprepo=/big/mybup"
  (To use the default `~/.bup` repository on the local host, specify "buprepo=")

* `encryption` - One of "none", "hybrid", "shared", or "pubkey".
  See [[encryption]]. Note that using encryption will prevent
  de-duplication of content stored in the buprepo.

* `keyid` - Specifies the gpg key to use for [[encryption]].

Options to pass to `bup split` when sending content to bup can also
be specified, by using `git config annex.bup-split-options`. This
can be used to, for example, limit its bandwidth.

## notes

[[git-annex-shell]] does not support bup, due to the wacky way that bup
starts its server. So, to use bup, you need full shell access to the server.