This seems like something that should be completely obvious, but I've been trying to get it working for a while without success.
I have a few machines (at least 3) at different locations. I want them all to be synced with a remote server that I have. I've installed git-annex on the server, and setting up the assistant on one of the machines, I can create the remote repository, and all seems to work (it spits out info about syncing... though I don't have any easy way of checking if it's working, as all I have is the one client).
It says in the webapp that setting up a remote git repository in transfer mode will make it easy to have other clients. But I'm wondering how to set that up. I tried just adding the same server with the same path on another machine, but it doesn't seem to be syncing, and I imagine that it is trying to create a fresh repo there instead of syncing with an existing one.
So, how do I set this up? I don't mind adding git remotes, ssh keys, etc, manually, but I haven't been able to figure out what I should be doing! My end goal is to have one annex that is synced between the many computers (ala Dropbox, as the assistant is supposed to be).
Note that the configuration of the test machines: client 1 - debian, git-annex built from current cabal server - debian, git-annex from apt client2 - mac osx, git-annex built from current cabal
Thanks, Daniel
Just adding the same server with the same path is the right thing to do, it will use the existing repo.
Probably the problem you're having is that one client doesn't know when the other client has sent data to the server. I've recently been adding XMPP (Jabber) support to deal with that. That is not yet in a released version of git-annex, but it is available in git master.
The master is segfaulting on one of my machines (the mac), but XMMP sounds good in general.
In the meantime - does git annex sync do what the assistant does? Or is there a command to tell the assistant to check for remote changes? (or a way to get it to auto-poll)
I recently dealt with a segfault caused by a bug in the haskell gnutls library. It could be that's what you were seeing. It's fixed in gnutls (>= 0.1.4)
Yes, you can run
git annex sync
by hand. It does the same syncing of the git repository that the assistant does. I don't think making the assistant poll is a good idea.Maybe it is possible to avoid the XMPP account setup and transferring via XMPP, maybe getting notifications through the SSH connection is possible.
I'm thinking about a "git-annex-shell server" unix socket to which clients would connect using the SSH connection and get update notifications from other clients.