Маючи доступ до git та rsync до одного і того ж сервера, ви можете використовувати цей сервер для зберігання історії (через доступ до git) та зберігання ключа-значення додатка (через доступ rsync). Вони також можуть бути роз'єднані та збережені на будь-якій кількості різних серверів.
Схоже, ви вже прочитали всі необхідні інструменти. В основному, ви отримаєте два окремих пульта, обидва вказують на різні місця на сервері-c. Перший пульт (server-c) - це звичайний git-пульт для синхронізації вашої історії та всього, що перевіряється безпосередньо у git repo. Другий пульт - це додатковий спеціальний пульт.
[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 = ...
Ви повинні мати можливість налаштувати це за допомогою чогось:
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
Це має отримати базовий функціонал, який ви шукаєте. Єдиним недоліком є те, що у вас є дві різні віддалені імена, які дійсно вказують на один і той же сервер. Зокрема, вам просто потрібно пам’ятати про використання спеціального пульта (server-c-rsync) при використанні --to = або --from = аргументів отримати, скопіювати та перемістити.
Можливо, можна вказати один віддалений на обидва місця, однак я не впевнений, чи підтримується це насправді. Для створення розумного .git / config з'являються наступні команди.
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
Для мене це призводить до отримання одного віддаленого в .git / config з url = (для звичайних операцій git) та annex-rsyncurl =. Однак я більше не перевіряв це, щоб переконатися, що git-додаток ігнорує URL-адресу та використовує лише запис annex-rsyncurl при роботі з доданими файлами.