Hi,
Is it possible to have git-annex send requests across the repository network? Say I have a network topology like this:
Home (annex) <-> Cloud (S3) <-> Laptop (annex)
Home has all files, cloud has zero, and laptop has subset of files. Let's also assume Laptop can't talk to Home directly (maybe it's behind a NAT), but both Home and Laptop are connected to the internet.
If I'm away on my laptop, can I retrieve a file from Home "through" Cloud?
That is, Laptop checking its remotes and none of them have the file I want, so it checks remotes of remotes, etc. I'm not sure if git-annex knows the topology (seems likely considering it can generate the graphviz image). It also seems there is a communication medium of Jabber/XMPP where it could communicate between internet-connected git-annex servers (which might not otherwise be able to talk to each other directly)? So the fact that Cloud isn't a git-annex server, just a dumb key/value store would be okay?
I realize that I could set it up so Home mirrors everything to Cloud and then that eventually mirrors over to Laptop, but let's assume both Cloud and Laptop have small storage capacities, so on-demand fetching would be needed.
This is basically the same usecase as the USB transfer drive to sync two annexes not on the same network, but automated.
Thanks!
Hi
This can be accomplished with the use of preferred content.
The network topology shown has only a S3 special remote connecting the two repositories. This only provides a place to store file contents, it does not allow syncing the contents of git repositories.
You need either XMPP(Jabber) for that, or a git remote on some other server. Once there is a way for the git repository to sync, the Home repository will see when Laptop is missing a file it wants (configured via the preferred content mentioned above), and upload it to S3.
Thanks, that makes sense.
All git annex repositories using the same branch will have the same (symlink) working directory right (assuming entire network has been synced eventually)?
This could also be what you're after (just a design)? https://git-annex.branchable.com/design/requests_routing/
This is something I would love to see implemented too. Especially as an addition to get / drop / fsck commands.