Com o acesso git e rsync ao mesmo servidor, você pode usá-lo para armazenar o histórico (via acesso git) e o armazenamento de valores-chave do anexo (via acesso rsync). Eles 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ê terá dois controles remotos separados, ambos apontando para diferentes locais no server-c. O primeiro controle remoto (server-c) é um controle remoto normal do git para sincronizar seu histórico e qualquer coisa que seja verificada diretamente no repositório git. O segundo controle remoto é um controle remoto especial em anexo.
[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 ser capaz de 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 se 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 os dois locais, no entanto, não tenho certeza se isso é realmente suportado. Os seguintes comandos parecem criar um .git / config sensato.
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 no .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 ao operar com arquivos anexados.