Con el acceso git y rsync al mismo servidor, puede usar ese servidor para almacenar tanto el historial (a través del acceso git) como el almacén de clave-valor anexo (a través del acceso rsync). Estos también se pueden desacoplar y almacenar en cualquier número de servidores diferentes.
Parece que ya has leído todas las herramientas que necesitarás. Básicamente, terminará con 2 controles remotos separados, ambos apuntando a diferentes ubicaciones en el servidor-c. El primer control remoto (server-c) es un control remoto git regular para sincronizar su historial y cualquier cosa que se verifique directamente en el repositorio git. El segundo control remoto es un control remoto anexo especial.
[remote "server-c"]
url = git@example.com:/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 = ...
Debería poder configurar esto con algo como:
git remote add server-c git@example.com:/path/to/repo.git
git annex initremote server-c-rsync type=rsync rsyncurl=example.com:/home/user/annex-rsync encryption=none
Esto debería brindarle la funcionalidad básica que está buscando. El único inconveniente es que tiene 2 nombres remotos diferentes que realmente apuntan al mismo servidor. En particular, solo debe recordar usar el control remoto especial (server-c-rsync) cuando use los argumentos --to = o --from = de obtener, copiar y mover.
Es posible apuntar un solo control remoto a ambas ubicaciones, sin embargo, no estoy seguro de si esto es realmente compatible. Los siguientes comandos parecen crear un .git / config sensible.
git init
git annex init "test"
git remote add server-c git@example.com:/path/to/repo.git
git annex initremote server-c type=rsync rsyncurl=example.com:/rsync/user encryption=none
Para mí, esto resulta en un único control remoto en .git / config con un url = (para las operaciones normales de git) y un anexo-rsyncurl =. Sin embargo, no he probado esto más para asegurarme de que git annex ignore la url y use solo la entrada annex-rsyncurl cuando opere con archivos anexos.