Dzięki dostępowi git i rsync do tego samego serwera możesz używać tego serwera do przechowywania zarówno historii (poprzez dostęp git), jak i aneksu do przechowywania kluczy i wartości (poprzez dostęp rsync). Można je również oddzielić i przechowywać na dowolnej liczbie różnych serwerów.
Wygląda na to, że przeczytałeś już o wszystkich potrzebnych narzędziach. Zasadniczo otrzymasz 2 osobne piloty, oba wskazujące różne lokalizacje na serwerze-c. Pierwszy pilot (serwer-c) to zwykły pilot git do synchronizacji historii i wszystkiego, co jest sprawdzane bezpośrednio w repozytorium git. Drugi pilot to specjalny pilot zdalnego sterowania.
[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 = ...
Powinieneś być w stanie skonfigurować to w następujący sposób:
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
To powinno zapewnić ci podstawową funkcjonalność, której szukasz. Jedynym minusem jest to, że masz 2 różne nazwy zdalne, które naprawdę wskazują na ten sam serwer. W szczególności musisz pamiętać o użyciu specjalnego pilota (server-c-rsync), gdy używasz argumentów --to = lub --from = get, copy i move.
Może być możliwe skierowanie jednego pilota w obie lokalizacje, jednak nie jestem pewien, czy jest to obsługiwane. Następujące polecenia wydają się tworzyć sensowne .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
Dla mnie skutkuje to pojedynczym zdalnym w .git / config z zarówno url = (dla normalnych operacji git), jak i aneksu-rsyncurl =. Jednak nie testowałem tego dalej, aby upewnić się, że załącznik git ignoruje adres URL i używa tylko wpisu Annex-rsyncurl podczas pracy z załączonymi plikami.