Com o acesso git e rsync ao mesmo servidor, você pode usar esse servidor para armazenar tanto o histórico (via acesso git) quanto o armazenamento de valor-chave anexo (via acesso rsync). Estes também podem ser dissociados e armazenados em qualquer número de servidores diferentes.
Parece que você já leu todas as ferramentas necessárias. Basicamente, você vai acabar com dois controles remotos separados, ambos apontando para diferentes locais no servidor-c. O primeiro controle remoto (server-c) é um controle remoto regular para sincronizar seu histórico e qualquer coisa que é verificada diretamente no repositório git. O segundo controle remoto é um controle remoto especial.
[remote "server-c"]
url = [email protected]:/path/to/repo.git
fetch = +refs/heads/*:refs/remotes/server-c/*
[remote "server-c-rsync"]
annex-rsyncurl = example.com:/home/user/annex-rsync
annex-uuid = ...
Você deve poder configurar isso com algo como:
git remote add server-c [email protected]:/path/to/repo.git
git annex initremote server-c-rsync type=rsync rsyncurl=example.com:/home/user/annex-rsync encryption=none
Isso deve fornecer a funcionalidade básica que você está procurando. A única desvantagem é que você tem 2 nomes remotos diferentes que realmente apontam para o mesmo servidor. Em particular, você só precisa lembrar de usar o controle remoto especial (server-c-rsync) ao usar os argumentos --to = ou --from = de obter, copiar e mover.
Pode ser possível apontar um único controle remoto para ambos os locais, mas não tenho certeza se isso é realmente suportado. Os seguintes comandos aparecem para criar um .git / config sensível.
git init
git annex init "test"
git remote add server-c [email protected]:/path/to/repo.git
git annex initremote server-c type=rsync rsyncurl=example.com:/rsync/user encryption=none
Para mim, isso resulta em um único controle remoto em .git / config com um url = (para as operações normais do git) e um anexo-rsyncurl =. No entanto, eu não testei mais isso para garantir que o anexo git ignore o URL e use apenas a entrada annex-rsyncurl quando estiver operando com arquivos em anexo.