XMPP (Jabber) is used by the assistant as a git remote. This is, technically not a git-annex special remote (large files are not transferred over XMPP; only git commits are sent).

Typically XMPP will be set up using the web app, but here's how a manual set up could be accomplished:

  1. xmpp login credentials need to be stored in .git/annex/creds/xmpp. Obviously this file should be mode 600. An example file:

    XMPPCreds {xmppUsername = "joeyhess", xmppPassword = "xxxx", xmppHostname = "xmpp.l.google.com.", xmppPort = 5222, xmppJID = "joeyhess@gmail.com"}

  2. A git remote is created using a special url, of the form xmpp::user@host For the above example, it would be url = xmpp::joeyhess@gmail.com

  3. The uuid of one of the other clients using XMPP should be configured using the annex.uuid setting, the same as is set up for other remotes.

With the above configuration, the assistant will use xmpp remotes much as any other git remote. Since XMPP requires a client that is continually running to see incoming pushes, the XMPP remote cannot be used with git at the command line.

XMPP server support status

Provider Status Type Notes
Gmail Working ? Google Apps: setup your SRV records or configure .git/annex/creds/xmpp manually
Coderollers Working Openfire
jabber.me Working Tigase
xmpp.ru.net Working jabberd2
jabber.org Working Isode M-Link
- Working Prosody No providers tested.
- Working Metronome No providers tested.
- Failing ejabberd Authentication bug: Fixed in debian unstable (>= 2.1.10-5) and stable (>=2.1.10-4+deb7u1)
- Failing jabberd14 No further information

List of providers: http://xmpp.net/

See also: xmpp protocol design notes